Random number generator
Pick a range and how many numbers you need: they're drawn with your browser's cryptographic generator, perfect for raffles, games, giveaways, and bingo nights.
Why we use crypto.getRandomValues instead of Math.random
This generator relies on crypto.getRandomValues, the cryptographically secure random source built into your browser, combined with rejection sampling to avoid bias: every number in the range has exactly the same chance of being drawn. The familiar Math.random, designed for animations and games, doesn't offer the same unpredictability guarantees, so for prize drawings, picking a winner among friends, or any "blind" choice, the cryptographic version is the better bet.
Drawing with or without repeats
With "unique numbers only" you get a draw like a lottery or bingo cage: each number can come out only once, so the amount you request can't exceed the size of the range (from 1 to 100 you can draw at most 100 numbers). Uncheck the box and it works like rolling a die over and over: repeats are possible and perfectly normal, handy for simulating dice rolls, generating test digits, or producing random sample data.
What «random» means to a computer
A computer is a deterministic machine: on its own it cannot produce anything truly random. Ordinary generators start from a seed and apply a formula, so the sequence is computable: knowing enough of the numbers produced, you can predict the next ones.
Cryptographic generators instead gather real disorder from the system: the microseconds between keystrokes, disk response times, hardware noise. It is the difference between a number good enough for a game and one a contestable draw can rest on.
The modulo mistake
The naive way to get a number between 1 and 10 from a generator is to take the remainder of a division by 10. It almost works: if the starting range is not an exact multiple of the number of outcomes, the first values come up a shade more often than the last.
On a six-sided die the bias is invisible, in a draw with many entrants it becomes measurable. The correct remedy is to discard and retry when the number falls in the tail that unbalances things: it costs an occasional extra attempt and returns a genuinely uniform distribution.
Random sequences do not look random
In a run of a hundred numbers between 1 and 10, getting the same number twice in a row is normal and happens often; it is the total absence of repeats that is suspicious. The feeling that «this generator repeats too much» is almost always a failure of intuition, not of the program.
It is the same reason some music apps had to make shuffle less random than the real thing: people complained about repeated tracks. Honest randomness clumps, and randomness that «looks random» has in fact been tamed.
Nearby tools
To draw names rather than numbers there is Random draw, and for a straight choice between two options Yes or no?. If you need an unpredictable password, the way through is Password generator.