LetsColab

Random name picker

A name out of a hat, without the hat. Paste the names, choose how many to draw, press Pick.

10 names
Use the full list size to put everyone in random order.

Example draw: 3 of 10

  1. Gemma
  2. Farid
  3. Ines

Each name had a 3 in 10 (30%) chance of being among those picked.

The link contains the list and the names drawn, encoded after the #. It shows a result; it cannot prove the result was not redrawn.

This session’s draws

  1. None yet. Draws are listed here until you leave the page; nothing is saved.

How likely is someone to be left out?

If you pick one name at a time and put every name back, the chance that a given person is never picked in r draws from n names is ((n − 1) / n)r.

Names on the list After 5 draws After 10 draws After 20 draws
5 33%11%1.2%
10 59%35%12%
20 77%60%36%
30 84%71%51%

How the pick works

Every non-empty line is one entry. The picker shuffles the whole list with the Fisher–Yates shuffle and takes the first names in the new order. Taking the first k names of a uniformly shuffled list is exactly the same, statistically, as drawing k slips out of a hat one after another without putting any back: each name has a k / n chance of being picked, and each possible set of winners is equally likely.

The random numbers behind the shuffle come from crypto.getRandomValues, the browser’s interface to the operating system’s cryptographically secure generator. It is the same source a browser uses for encryption keys, and it is not predictable from earlier outputs, unlike Math.random, which in most browsers is a fast generator designed for simulations rather than fairness. Each 32-bit value is converted to a position by rejection sampling, so no position is favoured by rounding.

A worked example

The example above draws 3 names from a list of 10. The chance that any particular person is among the three is 3 / 10 = 30%. The chance that one specific set of three is drawn, in any order, is one in 10! / (3! × 7!) = 120. If the order matters, for example first, second and third prize, there are 10 × 9 × 8 = 720 possible results, each equally likely.

Now suppose a teacher picks one pupil at random to answer each question, with everyone going back into the draw every time. With 20 pupils and 20 questions, the table shows each pupil has about a 36% chance of never being asked. That surprises people, and it is the reason to tick “remove picked names” when the aim is for everyone to get a turn: without replacement, 20 draws from 20 names reach every single person exactly once.

Draws with and without replacement

Where it stops being reliable

The mathematics of the draw is sound; the process around it is up to you. A draw on one person’s screen is only as trustworthy as that person, since they could press the button until they like the answer. For anything that matters, draw once in front of everyone. The page also does not check the list for near-duplicates such as “Sam” and “Sam B”, and every line counts, so a name pasted twice has two chances. Formal prize draws may be governed by local rules on how winners are selected and recorded; this tool does not keep the audit trail those rules may require.

Common questions

How random is this name picker?

Each draw uses crypto.getRandomValues, the browser’s cryptographically secure random number generator, with rejection sampling so every name has exactly the same chance. The list is shuffled with the Fisher–Yates algorithm and the first names in the shuffled order are the ones picked.

Can the same name be picked twice?

Not within one draw: picking three names gives three different people. Between separate draws, yes, unless you tick “remove picked names”, which takes each winner off the list so the next draw is from the people who are left.

How do I put everyone in a random order?

Set “how many to pick” to the number of people on the list, or higher. The result is the whole list in a random order, which is the usual way to set a speaking or presentation order.

Can someone rig a shared result?

A share link shows a result; it cannot prove how it was produced. Someone could draw repeatedly and share only the result they liked. For a prize draw or anything with stakes, draw once, live, on a screen everyone can see.

Does a name that appears twice get double the chance?

Yes. Every line is one ticket, so a name listed twice has two tickets. That is a simple way to weight a draw, for example giving someone who missed out last time an extra entry. Remove duplicates if you want everyone equal.

Other tools