CompleteToolkit

Random Number Generator

Generate truly random numbers in any range — single picks, bulk lists, or unique draws with no repeats.

About this tool

Picking a random number sounds trivial until fairness matters: a raffle winner, a giveaway draw, a randomized order for presentations, a sample selection for testing. This generator uses the browser's cryptographically secure randomness — the same source used for encryption keys — rather than the predictable pseudo-random functions most quick tools rely on.

One technical detail done correctly that most generators get wrong: uniform distribution. The naive approach (random value modulo range size) subtly favors lower numbers whenever the range doesn't divide evenly into the generator's output space — a real bias, measurable in large draws. This tool uses rejection sampling, which eliminates modulo bias entirely, so every number in your range has exactly equal probability. For a fun tool, that's overkill; for a raffle with real stakes, it's the difference between fair and slightly rigged.

Set any minimum and maximum (negatives welcome), generate up to 1,000 numbers at once, and toggle "no repeats" for draw-style selections where each number can win only once — the tool checks that your range is large enough and tells you if it isn't. Copy the whole list with one click for spreadsheets and records.

How to use the Random Number Generator

  1. 1Set your minimum and maximum — any whole numbers, negatives included.
  2. 2Choose how many numbers to generate (up to 1,000).
  3. 3Toggle 'No repeats' for raffle-style draws where each number can only appear once.
  4. 4Click Generate; use Copy all to grab the full list.

Frequently asked questions

Are these numbers truly random?

They're generated by crypto.getRandomValues, the browser's cryptographically secure source — unpredictable and suitable for draws with real stakes. This is a stronger guarantee than the Math.random() function casual tools use, which is reproducible and not designed for fairness.

Is every number in the range equally likely?

Yes — the generator uses rejection sampling to eliminate modulo bias, a subtle flaw in naive implementations that makes lower numbers slightly more likely. Here, a range of 1–100 gives every number exactly a 1-in-100 chance.

How does 'no repeats' mode work?

Each generated number is excluded from subsequent picks, like drawing tickets from a hat without putting them back. The tool verifies your range contains enough numbers — asking for 50 unique numbers between 1 and 10 shows a clear error instead of hanging.

Can I use this for a lottery or prize draw?

Yes — the cryptographic randomness and bias-free distribution make it fair for raffles and giveaways. For formal draws, generate in front of witnesses or on a screen recording, since results are intentionally not stored or reproducible.