Random Name Picker
🔒 Runs in your browser
How the name picker works
Paste your list — one name per line — and press Pick a winner. Each winner is drawn
with your browser's crypto.getRandomValues, the same source behind secure keys,
using rejection sampling so every name has exactly the same chance. Naive pickers reuse
a raw draw with a plain modulo, which quietly makes the names near the top of the list come up
more often; discarding the out-of-range tail removes that bias entirely.
Multiple winners, repeats and duplicates
Set How many winners to draw more than one. With No repeats on, each winner is distinct — so you cannot draw more winners than there are different names. Turn it off to allow the same name to be picked again, for example when drawing prizes where one person can win twice. Blank and whitespace-only lines are always ignored; duplicate names are collapsed only when no-repeats is on, otherwise a name listed twice keeps its doubled chance.
Why there is no seed
This picker deliberately has no seed: a past draw cannot be reproduced, which is exactly what you want for raffles, giveaways and fair selection where nobody should be able to predict or replay the outcome. If you need a reproducible pseudo-random sequence for a simulation or test, use a seeded PRNG in your own code instead.
Frequently asked questions
How fair is the draw?
Every winner is chosen with crypto.getRandomValues using rejection sampling, so each name has exactly the same chance — no modulo bias. There is no seed, so a draw cannot be replayed.
Can I pick several winners at once?
Yes. Set how many to draw. With “no repeats” each winner is different, so you cannot draw more winners than there are distinct names.
What happens to blank lines or duplicates?
Blank and whitespace-only lines are ignored. Duplicates are collapsed only when “no repeats” is on; otherwise a name listed twice keeps its doubled chance.
Are the names uploaded anywhere?
No. The list never leaves your browser — the draw runs entirely on your device and nothing is transmitted or stored.