How to Pick a Random Name From a Big List
The spreadsheet that broke my wheel
I built the spinner wheel first and thought that covered picking something at random. Then someone dropped a giveaway export into it, a few thousand entries from a signup form, and the wheel did its best: a couple of thousand slices, each one a hair wide, spinning for two seconds and landing on one of them. Nothing crashed. It just stopped meaning anything. Nobody in the room could see which sliver won, so the spin was no longer evidence of a fair draw. It was a short delay before reading a name off the screen.
That is the moment the list picker got built as a separate tool instead of a bigger wheel.
Where a wheel stops earning its place
Up to about thirty entries a wheel is genuinely the better experience. You can read every slice, watch it slow, and see the result land. Somewhere past a few hundred, the animation is performance rather than proof. Plenty of bulk pickers still wrap a ten thousand entry draw in a spinning graphic, which looks impressive and shows you nothing you could check.
The random name picker from a list drops the wheel for that reason. You give it a list, it tells you how many entries it read, and it draws. The count matters more than it sounds: it is how you catch a file that loaded 4,812 of 4,900 rows because of a stray blank line.
The spreadsheet formula most people try first
If your entries are already in Excel or Google Sheets, the usual first attempt is a formula. Something like this, pointed at the column with the names in it:
=INDEX(A2:A5000, RANDBETWEEN(1, COUNTA(A2:A5000)))
It works, and it has a trap in it that catches people in public. RANDBETWEEN is volatile: it recalculates whenever the sheet does. Type in another cell, sort a column, reopen the file, and your winner changes. More than one person has announced a name, been asked to prove it, refreshed the tab, and watched a different name appear. If you use the formula, paste the result somewhere as plain text the moment you get it, or lock it with Paste Special so it stops moving.
A tool that draws once and holds the answer sidesteps the whole problem. You still keep the spreadsheet as your record of who entered.
What happens to a list you paste in
This is the part worth knowing before you hand over a real list of entrants, because a giveaway export is usually full of names and email addresses.
Every step of the reading happens inside your own browser tab. Sniffing whether your paste is comma or tab separated, splitting quoted fields, unzipping an .xlsx file and reading the sheet inside it: all of it runs on your device. There is no request that carries your list anywhere, which is a claim you can check rather than take on trust. Open your browser developer tools, go to the network tab, then paste your list and draw. If a tool is uploading your entrants, you will see the request. Ours has none to see.
A few other pickers work this way too, and plenty do not. It is worth the thirty seconds to look, whichever tool you end up using.
Working on your device also removes the usual size ceiling. Anything that has to receive your file over a network has a reason to cap it at a few thousand rows. Here the limit is your own machine's memory. A spreadsheet with a hundred thousand rows loads the way ten names do, with a short progress step while it works through the file in chunks so the tab stays responsive.
Three ways to get your list in
Paste it. One entry per line, or a column copied straight out of Google Sheets or Excel. A spreadsheet paste arrives tab separated and is split correctly. Quoted fields survive, so an exported name like "Smith, Jane" stays one entrant instead of becoming two, which is how a naive comma split ruins a list of surnames.
Drop a file. A .csv, .tsv, .txt or a real .xlsx spreadsheet. If the sheet has several columns you choose which one holds the names. A header row like Name, Email or Entry is spotted and skipped, so your column title does not end up in the draw as a contestant.
Type it. Fine for a short list, and the same rules apply.
One honest limit: the old binary .xls format from before 2007 cannot be read here. Re-save it as .xlsx or .csv first and it loads.
Drawing several winners without picking anyone twice
Set how many names you want and they come out together, not one at a time from a pool that quietly still holds the earlier winners.
- Remove winners from the list, on. Each name that wins leaves the pool before the next name is drawn, so a grand prize plus five runners up never lands on the same person twice.
- Remove winners from the list, off. Every draw is independent, the way a dice roll is. Useful when duplicate entries are meant to count as extra chances.
- Remove duplicates. Separate switch, applied to the list itself. Off by default, so somebody who entered three times keeps three times the odds, which is how a paper ticket raffle usually works.
Draws of six winners or fewer get a real reveal, one name at a time, because for a handful of prizes the watching is most of the point. Above six the whole set appears at once. A sample of two hundred names does not need ceremony, and pretending otherwise only slows down the person who has to paste the result into a spreadsheet next.
Every pick uses the browser's own cryptographic random generator through crypto.getRandomValues(), not Math.random(). The same fairness note applies as everywhere else on this site: the draw is uniform, and no seed, time of day or entry position changes anyone's odds.
Three jobs this actually gets used for
A giveaway or raffle winner
The obvious one. A form export, a spreadsheet, or a list too long to be fair about by eye. If the entries are comments rather than a file, the YouTube comment picker and the Instagram comment picker collect the list for you first.
A sample, with no prize attached
Fifty records pulled out of a dataset for a manual audit, or a dozen survey responses to read closely rather than skim all nine hundred. Same mechanic, no ceremony, which is exactly what the instant reveal above six results is for.
Rosters that outgrew the wheel
A class of thirty is still nicer on the classroom spinner, where the spin is half the fun. A combined roster across five sections, or a company list for assigning tickets and reviewers, is past the point where a wheel tells anyone anything. If you need the list split into groups instead of one name pulled out, the team generator is the tool for that.
What it will not do
- It does not read legacy .xls files. Re-save as .xlsx or .csv.
- It does not keep your list. Nothing is stored on a server, which also means nothing is waiting for you on another device. Keep your own copy of the entries.
- It does not paint every result past a hundred. A draw of a thousand shows the first hundred as rows. The full set copies to the clipboard or downloads as a CSV, so nothing drawn is lost, it just is not all rendered at once.
- It does not verify who is eligible. Duplicate handling is a switch, not a judgement. If your rules disqualify entries, filter them in the spreadsheet before you draw.
Draw one now
- Open the name picker.
- Paste your list, or drop your CSV or Excel file on it, and check the entry count matches what you expected.
- Set how many names to draw, and decide whether winners come out of the pool.
- Draw, then copy or download the result before you close the tab.
Free, no signup, no ads in the middle of a draw, and the list never leaves your browser.
How to Pick a Random Name From a Big List — questions
How do I pick a random name from a long list?
Paste the list one entry per line, or drop a CSV or Excel file onto the picker. Check the entry count it reports, set how many names to draw, and press the draw button. There is no cap on list length, so a spreadsheet of a hundred thousand rows works the same way ten names do.
Is my list uploaded anywhere?
No. The file is read inside your browser tab, including .xlsx spreadsheets, and no request carries your entries anywhere. You can confirm it yourself: open the network tab in your browser developer tools, then load your list and draw. There is no upload to see.
Can I load a CSV or Excel file instead of pasting?
Yes. Drop a .csv, .tsv, .txt or .xlsx file on the page. If the sheet has several columns you pick the one holding the names, and a header row such as Name or Email is detected and skipped so it is not treated as an entrant. Legacy .xls files from before 2007 are not supported, so re-save those as .xlsx or .csv.
How do I draw several winners without repeating anyone?
Set the draw count above one and switch on remove winners from the list. Each winner leaves the pool before the next draw, so a grand prize followed by runners up never lands on the same person twice. Leave it off if you want every draw to be independent.
Why does my Excel or Google Sheets formula keep changing the winner?
RANDBETWEEN and RAND are volatile functions: they recalculate whenever the sheet does, so editing a cell or reopening the file gives you a new winner. Paste the result as plain text as soon as you get it, or use a tool that draws once and holds the answer.
What happens to duplicate entries?
They are kept by default, so somebody who entered three times has three times the chance, which matches how a paper ticket raffle works. Switch on remove duplicates if every unique name should count once instead.
Is there a limit on how many names it can handle?
No fixed limit. The list lives in your browser rather than on a server, so the ceiling is your own device memory rather than an upload cap. Very large files are read in chunks with a progress indicator so the page does not freeze while loading.