Random Name Picker

Paste a list of names and draw one or more winners with cryptographically secure randomness.

Names, one per line
Winners
Runs locally in your browser

About the Random Name Picker

Standups, giveaways, code review rotas and classroom turns all need someone chosen without an argument about fairness. Paste the names one per line, say how many winners you want, and the draw is made with crypto.getRandomValues, the same source browsers use for keys, shuffled with a Fisher and Yates pass so every ordering is equally likely.

A single line of comma separated names is also accepted, which is handy when you copy a column out of a spreadsheet or a chat message. Blank lines and stray spaces around a name are trimmed away before the draw. With Ignore duplicate names on, a name that appears twice is counted once so nobody gets a double chance; turn it off when duplicates are deliberate, for example one entry per raffle ticket bought.

With No repeats enabled the tool draws distinct winners and refuses a request for more winners than there are names, which stops a silent short list. Turn it off to sample with replacement, where the same person can be drawn again. Ticking List who was not picked prints the remaining names underneath, useful for a second round. To scramble a whole list instead of picking from it, use Shuffle Lines, and for numbers rather than names try the random number generator.

How to use

  1. Paste your names, one per line, into the left pane.
  2. Set How many winners to draw.
  3. Leave No repeats on for a normal raffle, or turn it off to allow the same name twice.
  4. Press Pick to draw again as many times as you like.

Common questions

Is the draw actually random?
Yes. It uses the browser Web Crypto random source, not Math.random, and shuffles the list before taking winners.
Can I paste names separated by commas?
Yes. If the input is a single line containing commas it is split on those commas instead of on line breaks.
Are my names sent to a server?
No. The list stays in the page, the draw happens in JavaScript on your device and nothing is stored.
How do I pick a team rather than one winner?
Set the number of winners to your team size and keep No repeats on, then run it again for the next team.