Skip to content

Random Name Picker

Mode

Result

Add names and click pick.

Estimates for educational purposes — not financial, medical, or legal advice. See terms.

Pick one or more names from a list at random, with full control over whether the same name can be picked twice. Paste your list into the input (one name per line), choose how many picks you want, and click pick.

Two modes:

  • No repeats (default) — every pick is unique. Good for picking a subset from a larger group — raffle winners, meeting chair rotation, pair-programming pairs.
  • Allow repeats — every pick is independent, so the same name can come up more than once. Good for daily drawings where yesterday’s winner is still eligible, or for stress-testing a list’s selection characteristics.

The random source is crypto.getRandomValues via the Web Crypto API — cryptographically strong pseudorandom numbers, much more than fair enough for any practical decision-making use. Everything runs locally in your browser; the list never leaves your device.

How without-repeat picking works

The no-repeat mode uses a Fisher-Yates partial shuffle. To pick $k$ names from a list of $n$:

  1. Start with the full list.
  2. For each of the first $k$ positions:
    • Pick a random index $j$ between the current position and the end.
    • Swap the element at the current position with the element at $j$.
    • Collect the element now at the current position into the output.

This is uniform — every possible subset of size $k$ is equally likely to come out — and it’s $O(k)$ in time, so picking 10 from 10,000 is as fast as picking 10 from 10. The partial nature (you only shuffle the first $k$ positions) is what makes it efficient compared to a full shuffle followed by truncation.

The mathematical guarantee: after running the algorithm, every permutation of the first $k$ positions is equally likely, which means every subset of $k$ elements appears with probability $\binom{n}{k}^{-1}$. For a list of 10 names picking 3, that’s $\binom{10}{3} = 120$ equally-likely outcomes.

How with-repeat picking works

Simpler: for each of the $k$ picks, generate a uniform random index in $[0, n)$ and take the name at that index. Each pick is independent, so there’s no accumulated state — you could rerun the exact same algorithm infinitely many times and every pick would be independent.

The probability of any specific name being picked on any specific turn is $1/n$. The probability of the same name being picked twice in a row is $1/n^2$, and so on. For small $n$, these probabilities aren’t as small as intuition suggests — which is why repeats feel “suspicious” to users but are actually fair.

Example: picking a weekly meeting chair

Your team has 8 people. You want to pick a different chair each week, and you want to make sure nobody chairs twice in the same month. Two options:

  • Weekly picks, with-repeat mode. Each week you pick 1 name from 8, and the same name can win two weeks in a row. Probability of that happening is 1/8 = 12.5%, which over a year is pretty common. Simple but not fair over short timescales.
  • Monthly picks, without-repeat mode. Once a month you pick 4 names from 8, assigning them to the four weeks. Every month, everyone who’s eligible gets the same shot, and no one can chair two weeks in the same month. More complex but more equitable.

Example: raffle winners

You have 200 entries and want to pick 5 winners without repeats. Paste the entries, set count to 5, leave mode as no-repeat. The tool returns 5 distinct winners in the order they were drawn — the order isn’t significant, but people often care about who was drawn “first” so it’s reported.

For raffles with more than one prize tier (1 grand prize, 3 runners-up), pick them all in one batch with no repeats; the first result is the grand prize winner and the rest are runners-up. Don’t do the draws separately unless you explicitly want the tiers to be independent; doing them together guarantees no one can win two prizes.

Example: stress-testing a list

Allow-repeats mode with a high count is good for checking whether your list has enough variety. Pick 50 names from a list of 10 with repeats on and see how many distinct names appear. If only 3 or 4 show up, the run was unlucky; try again. If over many tries you consistently see a subset always winning, you may have a bug — but with crypto.getRandomValues as the source, “bug” is almost certainly “human pattern recognition”, not real bias.

What this tool does not do

It does not handle weighted selection — every name has equal probability of being picked, and there’s no way to give some names a heavier weight. If you need weights, duplicate names in the list: a name that appears twice is twice as likely to win as one that appears once.

It does not support stratified sampling (drawing one name from each category) — you’d have to run the tool once per category and combine the results manually.

It does not persist your list — reload the page and it’s gone. If you need to save a list, copy it into a text file yourself. For a visual spin instead of a plain output, the decision wheel renders the same draw as an animated wheel.

Frequently asked questions

What's the difference between with-repeat and without-repeat?

With-repeat means every pick is independent — the same name can win multiple times in a row. It's like rolling a die multiple times; each roll is independent of the previous one. Without-repeat means you're drawing without replacement — once a name is picked, it's set aside and can't be picked again in the same batch. Use with-repeat when you want each pick to be fair and independent (choosing daily winners where yesterday's winner can still win today). Use without-repeat when you want a unique set (picking 3 people from a group of 10 without picking the same person twice).

Is the random selection actually fair?

Yes. The tool uses crypto.getRandomValues from the Web Crypto API, which provides cryptographically strong pseudorandom numbers. That's much better than Math.random (which is not cryptographically secure but is still pretty uniform for casual use). The Fisher-Yates shuffle used for without-repeat mode is mathematically uniform — every possible combination of picks is equally likely. For practical purposes, the fairness is as good as it gets without an actual hardware random number generator.

Why can't I pick more names than the list has in without-repeat mode?

Because without-repeat means no duplicates. If your list has 5 names and you ask for 8 without repeats, there's no way to satisfy the request — at most 5 unique names can come out. The tool rejects this as an error rather than silently trimming to 5, so you don't accidentally miss that fewer picks were delivered than requested. If you genuinely need 8 names from a list of 5, switch to with-repeat mode, which will cheerfully pick all 5 names multiple times.

Why does the same name keep winning?

Random runs look surprisingly non-random to human intuition. If you have 5 names and you pick 3 times in with-repeat mode, the probability of one name winning twice is about 36% — not exactly surprising when it happens. Our brains are pattern-recognition machines and see 'streaks' in genuinely uniform random data all the time. If the wheel is producing the same answer repeatedly, the fix is to run more trials; the long-run distribution will approach fairness even when individual short runs look weird.

Is my list of names sent anywhere?

No. Everything happens locally in your browser — the list, the random selection, the displayed picks. Nothing is uploaded, logged, or transmitted. You can take the tool offline after first load and it will keep working. This matters because people sometimes paste sensitive lists (employees, customers, lottery entries) into these tools, and sending any of that to a server would be inappropriate.