Random Name Picker — Draw Winners & Make Teams
Pick a winner from a list, choose several, shuffle the order, or split into teams.
🔒 Runs in your browser — files never uploaded ⚡ No signup 💯 Free
0 entries ·
Paste a list of names or items, then pick one winner, draw several, shuffle the whole list into a random order, or split everyone into balanced teams.
Everything happens in your browser using cryptographic randomness — your list is never uploaded.
How to use Random Picker
- Paste your list, one entry per line.
- Choose a mode — pick one, pick several, shuffle, or make teams.
- Click Pick.
- Tick “remove picked entries” to run successive rounds without repeats.
Why the shuffle is done properly
The most common way people shuffle an array in JavaScript is array.sort(() => Math.random() - 0.5). It looks elegant and it is wrong. Sorting algorithms assume a consistent comparator; feed one that answers randomly and the resulting distribution is measurably skewed, with some orderings appearing far more often than others. The bias depends on the browser's sort implementation, which is why it often passes a casual eye test.
This tool uses the Fisher–Yates shuffle, which visits each position once and swaps it with a uniformly chosen remaining element. Every possible ordering is equally likely — and the random source is your browser's cryptographic generator rather than Math.random().
How teams are balanced
Entries are shuffled first, then dealt round-robin — first to team 1, second to team 2, and so on. That guarantees team sizes differ by at most one person, however many names and teams you have. Splitting the shuffled list into consecutive blocks instead would leave the last team short whenever the numbers do not divide evenly.
Duplicates
Identical lines are counted separately, so a name entered twice has twice the chance of winning. The counter under the box tells you when duplicates are present, in case that was not intentional — though it is a legitimate way to weight a draw.
Frequently asked questions
Is the shuffle genuinely fair?
Yes — it uses Fisher–Yates with cryptographic randomness, so every possible ordering is equally likely. The popular sort(() => Math.random() - 0.5) trick is not a fair shuffle and produces a measurably skewed distribution.
How are teams balanced?
The list is shuffled, then dealt round-robin — one to each team in turn. That keeps team sizes within one person of each other no matter how the numbers divide.
What happens with duplicate names?
They count separately, so a name entered twice has twice the chance of being drawn. The counter warns you when duplicates are present — though weighting a draw this way is perfectly legitimate.
Can I run several rounds without repeats?
Yes. Tick "remove picked entries" and each winner is taken out of the list automatically, so you can keep drawing for second and third place.
Is my list uploaded anywhere?
No. Everything happens in your browser — the list never leaves your device, which matters if it contains customer names or email addresses.