Random Picker
Pick a winner from any list, fairly, with cryptographic randomness.
Paste a list and press Pick.
Features
- Pick one winner or several at once
- Remove-after-pick for multi-round draws
- Animated reveal that cycles through entries
- Shuffle the entire list into random order
- Cryptographically secure and provably unbiased
How to use it
- Paste your entries, one per line.
- Choose how many winners to draw.
- Press Pick.
- Turn on remove-after-pick for multi-round draws.
What makes a draw actually fair
Two things can quietly break a random draw, and both are common. The first is the randomness source: Math.random() is a predictable pseudo-random generator, and given a handful of previous outputs its internal state can be recovered and future values predicted. For a prize draw that matters. This tool uses crypto.getRandomValues(), which draws from the operating system's cryptographic entropy pool.
The second is modulo bias. Mapping a random 32-bit number into a range of, say, 7 entries by taking the remainder gives the first few entries a very slightly higher chance, because 2³² is not divisible by 7. The bias is small but it is real and it is systematic, the same entries are favoured every time. This tool uses rejection sampling, discarding values that fall in the uneven tail, which makes every entry exactly equally likely.
For multiple winners the tool uses a partial Fisher-Yates shuffle rather than picking repeatedly and discarding duplicates. That guarantees distinct winners in a single pass and, unlike the naive approach, produces every possible combination with equal probability. If you are running a draw where the outcome matters to people, it is worth being able to say all of this.
Frequently asked questions
Related tools
Further reading
Read the full guide on the 123MiniApps blog.