Skip to content
ToolBoxGeniehome

Random List Picker

Text Tools · Added

Paste a list of names, entries or options and draw as many as you need at random. The full shuffled order is shown alongside the winners, not just the result, so anyone who was in the draw can see where they landed.

Up to 10,000 entries. Everything stays in your browser.

Entries are separated by

How to use the random list picker

  1. 1Paste your list — one entry per line, or switch the separator to commas or spaces.
  2. 2Check the count that appears below the box, and decide what to do about any duplicates it reports.
  3. 3Set how many entries to pick.
  4. 4Press Pick, then open the full draw order if you want to show the runners-up.

Examples

One winner from a giveaway

Input
412 entries, one per line
Result
One name, plus the other 411 in the order they would have been drawn

Each entry had a 0.24% chance.

Splitting a class into pairs

Input
24 names, picking 24 without replacement
Result
A complete shuffle — read it two at a time to get twelve pairs

About the random list picker

Why the shuffle matters more than the pick

Drawing five names from a list can be done two ways. You can pick a random index, remove that entry, and repeat; or you can shuffle the whole list once and take the first five. Both give the same distribution, and the second gives you something the first throws away: the order everybody else would have come out in.

That is why this shuffles. The runners-up list costs nothing extra to produce and turns an unverifiable claim into something a participant can check against their own position.

The modulo trap

The obvious way to pick a number below n is to take a random 32-bit value and use the remainder after dividing by n. It is also subtly wrong: unless n divides the range exactly, the low values come up slightly more often than the high ones. With a list of three the bias is invisible; with certain sizes it is measurable.

The fix is rejection sampling — discard any value that falls in the uneven tail and draw again. It costs an occasional extra draw and removes the bias entirely, and it is what runs behind this page.

Frequently asked questions

Is the draw actually random?
The order comes from a Fisher-Yates shuffle driven by crypto.getRandomValues, the browser's cryptographic random source, with rejection sampling so that no entry is favoured by the modulo bias that a naive remainder introduces. Every possible arrangement of your list is equally likely.
What happens to an entry that appears twice?
By default it stays twice and gets two chances, which is right when two different people share a name and wrong when somebody was pasted in by accident. The tool cannot tell those apart from the text, so it counts the repeats, tells you what it found, and gives you a switch to merge them.
Why show the runners-up as well as the winners?
Because a draw nobody can inspect is a draw somebody will dispute. Publishing the whole order lets everyone who entered see their position, which is the closest a browser tool can get to letting people watch the hat.
Can I use this for a prize draw with legal requirements?
Treat it as a fair shuffle, not as an auditable process. It leaves no record — no timestamp, no signature, nothing stored anywhere — so it cannot prove after the fact that a particular draw happened. Where a promotion has to be independently verifiable, that requirement is about evidence and process rather than about the quality of the randomness.