Name Picker
Paste a list, spin the wheel, get a winner. The draw uses real cryptographic randomness, and your list never leaves this browser.
How to pick a random name
- 1
Paste your names
One per line. A spreadsheet column, a chat export or a class register all paste straight in — anything blank is ignored, so you do not have to tidy it first.
- 2
Weight anyone who deserves it
Put ×3 after a name and it takes three slices instead of one. That is how you run a raffle where people earned extra entries, without pasting the same name three times and making the wheel unreadable.
- 3
Spin
Click the wheel. The winner is drawn the instant you click — the spinning is the announcement, not the decision — so nothing about the animation can nudge the result.
- 4
Draw again, or take the winner off
Tick "take the winner off the wheel" and each spin removes whoever just won. Spin repeatedly for second and third place, or to work through a whole class without asking anyone twice.
What makes a wheel fair, and what does not
The wheel is a picture of a decision that has already been made. The moment you click, the winner is drawn; the five seconds of spinning exist so everyone watching sees it happen, not so the computer can work anything out. The alternative — give the wheel a random shove, let friction slow it down, and read off whatever ends up under the pointer — sounds more honest and is worse. Fairness then depends on an easing curve, the frame rate of the device, and whether a rounding error puts the pointer a hair on the wrong side of a boundary.
The draw itself uses the same source as a password. The browser is asked for cryptographic random bytes, and any value that would not divide evenly across the list is thrown away and re-drawn. That second part matters more than it sounds. The obvious shortcut is to take a remainder — a random number modulo the number of names — and that gives the first few entries in the list a slightly better chance every time the list length does not divide the range evenly. With ten names it is a rounding error. With a hundred it is a visible thumb on the scale.
What is left is your list. No amount of good randomness fixes a name that appears twice, so there is a button that removes duplicates and a count beside the box so you can check it against your register. And weights are deliberate and visible: if someone has ×3 after their name, their slice is three times the size, and you can see it on the wheel rather than having to take anyone's word for it.
What people actually use this for
Giveaways and prize draws. Paste the entrants, tick remove-after-picking, and spin once per prize. The list of everyone drawn builds up in order beside the wheel, which is what you screenshot afterwards.
Classrooms. Cold-calling by wheel takes the sting out of being picked — nobody thinks the teacher chose them — and with the winner removed after each spin it works through a register without asking the same child twice in one lesson.
Standups and retros. Who goes first, who facilitates, who takes the notes. It is faster than the pause where everyone waits for somebody else to volunteer, and it stops the same person getting it every week.
Deciding anything at all. Lunch, which task to start on, whose turn it is to drive. The names do not have to be people — a wheel of options is a perfectly good way to stop a group re-litigating a decision that does not matter.
Frequently asked questions
Yes, and in a specific sense worth spelling out. The winner is drawn by asking the browser's cryptographic random number generator for bytes and discarding any value that would not divide evenly across your list — the same rejection-sampling technique used to generate keys. The wheel then spins to the answer already drawn. Nothing about the animation, the easing or where you clicked can influence it.
Because it is not built for this. Math.random is a fast pseudo-random generator with no guarantee of quality, and the obvious way to turn its output into a list position — take a remainder — quietly favours the entries at the start of the list whenever the range does not divide evenly. On a list of three the bias is small; on a list of a hundred it is measurable. For a tool people use to give away money or pick who goes first, "close enough to random" is not good enough.
No. The page does the drawing; there is no request to make. Your list is saved in this browser so it is still there next time you open the tool, and that copy stays on your device — you can clear it from the tool itself. Open the network panel and spin: nothing goes out. The optional API endpoint is a separate thing you have to call deliberately.
Yes. Tick "take the winner off the wheel" and spin as many times as you need — each spin removes whoever just won, so nobody wins twice, and the list of everyone drawn builds up beside the wheel in order. That is the right model for first, second and third place, or for drawing five names out of two hundred.
Write ×3 after their name. They get three slices instead of one, so on a wheel of ten other names they have three chances in thirteen rather than one in eleven. Any whole number up to 999 works. This is how giveaways with earned entries are normally run, and it is why the slice sizes on the wheel are not all equal.
Because the winner was removed. Every remaining name shifts round to fill the gap, so the wheel would otherwise be sitting there pointing at somebody who did not win. Snapping back to the top is the honest picture — the banner still names the winner, and the next spin starts clean.
Five hundred. Past about sixty the slices get too thin to print a name in, so the wheel shows colour alone and the full list stays readable beside it. The draw itself is unaffected — a wheel of five hundred is drawn exactly as fairly as a wheel of five.
Yes, and people do. Two honest caveats. It produces no certificate or audit log, so if you need to prove fairness to a regulator you want a service built for that. And it cannot verify the list — if a name is in there twice by accident, that person genuinely does have double the chance. Remove duplicates first; there is a button for it.
Yes. Once the page has loaded there is nothing left to fetch — the wheel, the drawing and your saved list are all local. It is also fine on a projector or a phone, which is mostly how it gets used.
No. No sign-up, no ads, no watermark on anything, no limit on spins, and nothing to install. It is MIT licensed, and the drawing and the wheel geometry are a couple of hundred lines you can read in the repository.
API — for scripts and agents
The same draw behind a free REST endpoint. No API key, no sign-up. Pass count for several winners and they are drawn without replacement, so nobody wins twice.
curl 'https://zeal.tools/api/v1/pick?names=Ada,Grace,Linus&count=1' This one is worth pointing an agent at. A language model asked to pick something at random does not draw — it samples from what it finds likely, which leans reproducibly towards the first entry, the last, and whatever it has seen most. MCP clients can add https://zeal.tools/mcp and call the pick_random tool to get an actual draw instead.
The Zeal Promise
Non-negotiable, on every tool we ship.
- No sign-up — ever
- No watermarks on any output
- No ads near the download button
- Works fully on mobile
- Privacy-first: processing stays in your browser
- Open source (MIT) — audit it, contribute, self-host
- Zero runtime dependencies in tool logic