Put every entry on its own line, shuffle the whole list once with an algorithm that treats every position the same, and take whatever ends up on top. That is the method, and it takes about 30 seconds with a random picker that draws from a pasted list. What decides whether the result survives contact with the losers is everything around the draw: a list with the same person on it three times, a shuffle that quietly favours certain positions, and rules that get invented after the name appears.
How to run the draw in five steps
- Collect the entries into plain text, one per line. Names, ticket numbers, email addresses, whatever identifies a person unambiguously.
- Strip out duplicates and anyone who is not eligible, before you draw.
- Say out loud — or write in the post — how many winners there are and what happens if one does not reply.
- Draw once.
- Announce the result with the entry count next to it: "one of 142 entries" tells people more than a name on its own.
Step four is the one that gets abused. A draw you repeat until you like the answer is not a draw, and people can tell.
Decide the rules before you press the button
Every rule you add after seeing the winner looks like a rule you added because of the winner. Settle these first:
- Who is in. Cut-off time, eligibility, whether staff and family count.
- How many win. One winner and two backups is a different draw from three equal winners, and you cannot decide which it was afterwards.
- What happens if the winner goes quiet. "48 hours to reply, then we draw again" is fine. Silently redrawing is not.
None of that is a technical problem, which is why disputed giveaways usually come down to it rather than to the randomness.
Clean the list first
Most entry lists arrive as a mess: a form export, a comment thread, a chat channel people replied in. Before you draw, the list needs to contain exactly one line per eligible entry.
A picker can do part of that for you. Blank lines are skipped, spaces around an entry are trimmed, and "ignore duplicate lines" — ticked by default — collapses entries that differ only in capitalisation, so anna and Anna count once. What no tool can work out is that "Anna Smith" and "A. Smith" are the same person, or that two different people are both called Chris. Those you check by eye. If the raw list came out of a spreadsheet or a scraped thread, a proper pass to strip repeated lines out of a list before you paste it will save you the argument.
One more thing to watch: one line is one entry. Paste a CSV row and the whole row — commas, email address, timestamp — becomes a single entry with a name buried in it.
Is an online random picker actually random?
Two things decide that, and both are invisible from the outside.
The first is the shuffle. The popular one-liner is to sort the list with a comparator that returns a random number. It looks clever and it does not produce a random order. Sorting algorithms assume the comparison is consistent — if A comes before B once, that stays true. Feed them a coin flip and the outcome depends on which pairs that particular algorithm happened to compare, in what order. Entries tend to finish near where they started, and the bias differs between browsers because their sort implementations differ.
The correct algorithm, Fisher-Yates, is no harder: walk the list backwards from the last position, and at each step swap the current item with one chosen at random from the positions at or before it. Every possible ordering comes out equally likely.
The second is the source of randomness. Math.random() is a formula seeded once, producing a stream that looks random and is entirely determined by that seed. It is fine for animation jitter. crypto.getRandomValues() draws from the browser's cryptographic generator, seeded by the operating system — the same machinery behind encryption keys. For deciding who buys coffee this is absurd overkill. For a draw where something is at stake it removes a whole category of complaint for no extra effort, and it is what the picker on this site uses.
Why taking the remainder is slightly unfair
Turning a random 32-bit number into a number between 0 and 9 by taking the remainder introduces a tiny bias, because 4,294,967,296 is not a multiple of 10 and the leftover chunk at the top makes the first six results marginally more likely. On a list of 20 names nobody could ever detect it. Removing it is trivial anyway: discard any value landing in the incomplete final block and draw again.
How do you pick several winners without repeats?
There are two different things people mean by this, and mixing them up is how the same person ends up winning first and second prize.
Several winners at once. Ask for the number you want in a single draw. A shuffle followed by taking the top three returns three different lines, guaranteed, with no chance of a collision. Different lines is not the same as different people, though: if someone is sitting in the list ten times for bonus entries, two of those three slots can land on the same name.
Rounds, drawn one at a time. First prize, then second, then third. Here you want the winner removed from the pool between draws, otherwise each round starts from the full list and a repeat is entirely possible. Ticking "delete winners from the list after picking" does exactly this: each result comes out and the name disappears from the box, so the next round runs on what is left.
Either way, the tool forgets everything when the page reloads — the list, and which names have already come out. Copy each round's result somewhere before you touch that tab.
If you want a running order rather than a winner — presentation slots, penalty takers, chore rotation — use shuffle mode and read the whole list top to bottom. Same algorithm, different output, though the results panel stops after 500 rows and tells you how many it left out.
Can you give someone better odds?
Only by putting them in the list more than once. Ten entries for a referral means ten lines with that name on them, and you have to turn off the duplicate filter for those lines to count — it exists to clean up pasted data, and it does not know the difference between a repeat you meant and a repeat you did not.
There is no weight field or percentage box, which is a deliberate limit. Weighted draws are easy to get subtly wrong, and a list you can read and count is a list you can hand to someone who disagrees with you.
Why the same name can come up twice
Draw one name from twenty today and one tomorrow, and there is a one in twenty chance it is the same name. People read that as broken. It is the opposite — a generator that refused to repeat would be the biased one. Nobody is "due", each draw knows nothing about the last, and a genuinely random sequence contains clumps and streaks that a person trying to fake randomness would never write down.
When fairness has to be provable
This is where a browser-based picker stops. The draw is fair; it produces no evidence that it was. There is no seed, no log, no timestamp, no receipt — just a name on your screen, and "trust me" is not an argument that wins.
If real prizes are involved and entrants might dispute the outcome:
- Publish the entry list before you draw. If the names are private, publish a SHA-256 hash of the list instead. Change one character of the list and the hash comes out completely different, so a hash posted in advance lets you show afterwards that you drew from the list you committed to, without revealing anyone's name at the time.
- Record the screen while you paste the list and draw. Thirty seconds of video answers most questions.
- Use a service built for verifiable giveaways if the prize is large enough to be worth contesting. Storing the entries and the outcome is the whole product, and it is precisely what a tool that keeps your list private cannot do.
Prize promotions are also regulated differently depending on where you and your entrants live, and on whichever platform you are running it. That is a separate problem from the randomness, and no picker of any kind deals with it.
For an ordinary draw — a team rota, a book giveaway, deciding who presents first — the random picker here covers it: paste the list, pick one or several, or split the whole thing into teams. It runs in your tab with a Fisher-Yates shuffle over the browser's cryptographic randomness, and the list never leaves your computer, which is also why it cannot hand you a receipt.
Most of the work is in the list rather than the draw. Sorting it alphabetically first is the quickest way to see the same person twice before the draw does, and sorting a list without the capitals jumping to the top is fiddlier than it sounds — which is the other half of getting a clean list.
Frequently asked questions
How do I pick a random winner from a list of names?
Put one name per line, remove duplicates and ineligible entries, then shuffle the whole list once and take the top result. Doing it in a browser-based picker takes under a minute and avoids the temptation to redraw. Announce the winner together with the number of entries, so people can see the size of the pool.
Are online random name pickers actually fair?
It depends on how they shuffle. A list sorted with a random comparator — the common one-line trick — is not uniform, and entries tend to finish near where they started. A picker using a Fisher-Yates shuffle over crypto.getRandomValues() is genuinely even, but no browser tool can prove to a third party that the draw happened as described.
How do I pick multiple winners without the same person winning twice?
Ask for all of them in one draw rather than drawing repeatedly. A single draw for three winners returns three different lines, so the only way one person takes two slots is if their name is on the list twice. To draw them in order for first, second and third prize, remove each winner from the list before the next round.
Can I give some entrants more chances to win?
Yes, by listing them more than once — ten bonus entries means ten identical lines. Make sure any duplicate filter is switched off first, or those lines collapse back into one. The picker on this site has no weighting field beyond that, and a list you can count by hand is easier to defend anyway.
How do I prove a giveaway draw was not rigged?
Commit to the rules and the entry list before drawing: publish the list, or publish a hash of it if the names are private, so you can show later that nothing changed. Record the screen while you draw. For prizes large enough to be contested, use a service that stores the entries and the result, because a tool that keeps your list local by design cannot produce evidence.
Does the same name coming up twice mean the picker is broken?
No. Separate draws are independent, so with twenty entries there is a one in twenty chance of a repeat every time. A generator that avoided repeating itself would be the biased one. If you need repeats to be impossible, run one draw for several winners or delete each winner from the list as it comes out.
Last updated September 19, 2026