Random Draw
Draw winners, shuffle a list, or draw without repeats — with weighted picks, all done locally.
How to Use
- Paste the list
One name per line; blank lines are skipped and a repeated name counts as a separate candidate.
- Choose a mode
Random draw for a few winners, shuffle for a new order, draw without repeats for multi-round draws.
- Add weights if needed
Tick weighted draw and write each line as "name weight"; weights are integers and smaller means rarer.
FAQ
Is the draw fair?
Yes. Randomness comes from crypto.getRandomValues, a cryptographically secure source, with rejection sampling to remove modulo bias, so every candidate has exactly the same probability of being drawn — not approximately equal, equal. In weighted mode probability is proportional to the weight, which is a different and deliberate property.
Why cannot one draw produce several distinct winners uniformly?
The draw-without-repeats mode removes winners from the pool so later rounds only pick from what remains, and nobody can win twice that way. But making a single draw of k distinct people uniform over all combinations is mathematically impossible to combine with every ordered permutation being equally likely; the tool takes the first option and drops winners from the pool.
Can weights be decimals?
Only integers for now, because the weights are summed into an integer range before a random number is taken and decimals would introduce floating point error. Ratios like 1 to 50 cover the practical cases.
Does the list leak anywhere?
No. The draw runs locally in the browser with no network requests at all. Paste the list, disconnect, and the tool behaves identically.