Skip to content
EN

Random Name Picker

Paste your list (one name per line, or separated by commas) then draw a single winner or shuffle everyone into a random order.

Paste from a spreadsheet or type them in: commas and line breaks both work.

The shuffle almost everyone gets wrong

Search for how to shuffle a list and the first answer you will find is to sort it with a random comparison: sort(() => Math.random() - 0.5). It is one line, it looks clever, and it does not produce a fair shuffle. A sorting algorithm assumes the comparison it is given is consistent: that if A comes before B and B before C, then A comes before C. A coin flip is not consistent, so the algorithm makes decisions based on comparisons it has already contradicted, and the arrangement it lands on depends on the internals of the sort. In practice some orders come out several times more often than others, and which ones depends on the browser.

The correct method is a hundred years older than the bug. Fisher-Yates walks the list from the last position to the second, and at each step swaps the current item with one chosen from the positions up to and including it. That last detail is the whole thing: the range has to shrink as you go. Choosing from the entire list every time is the classic mistake, and it is subtle because every possible order is still reachable. Only the odds are wrong. Shuffle three names that way and three of the six orders come out twice as often as the other three.

This matters here more than in most places, because a name picker is used precisely when fairness is the point: who presents first, who gets the ticket, who does the unpleasant job. A shuffle that quietly favours some arrangements is a rigged draw that nobody can see. The shuffle here is Fisher-Yates with the shrinking range, and it is tested by counting how often each arrangement appears, a test that fails on exactly the mistake described above.

Names are split on line breaks and on commas, so pasting a column out of a spreadsheet and typing a list by hand both work. Blank lines and stray spaces are dropped. Nothing you paste leaves your browser: the draw happens on your own machine, and the list is never sent anywhere or stored.

Frequently asked questions

How do I enter the names?

One per line, or separated by commas, or a mixture of both. Paste a column straight out of a spreadsheet and it will work. Empty lines and extra spaces are ignored, so a trailing blank line at the end of a paste does not become a mystery contestant.

Does everyone have the same chance?

Yes. Every name is equally likely to be drawn, and when you shuffle, every possible order is equally likely. That is not true of the shuffle most sites use. See above.

Can I draw more than one winner?

Shuffle the whole list and take the first few. The order it produces is fair the whole way down, so the top three of a shuffled list are a fair draw of three winners, with no repeats by construction.

Are the names sent anywhere?

No. Everything runs in your browser. The list is not uploaded, not stored and not visible to us. Closing the tab is all it takes to be rid of it.

Is a browser draw acceptable for a real prize?

The draw is fair, but it is not provable to anyone who was not watching. That is true of every in-browser picker, not just this one. For a casual giveaway it is fine; where the result could be disputed, run it on a call with witnesses or record the screen.

Other tools