Wheel spinner & random name picker

Type or paste a list of names, options or entries — one per line — then spin. The wheel lands on a uniformly random winner every time, announced on screen and read aloud by screen readers. Nothing you type ever leaves your device.

Add entries and press Spin.

How the pick works

The order of operations matters more than it sounds like it should, because it is the difference between a genuinely fair picker and one that only looks like it.

  1. The winner is chosen first. Your entry list has N lines, so the tool draws one uniformly random integer from 0 up to N−1 using the browser's Math.random(). Every index has an equal 1-in-N chance, independent of where it sits in the list or how big its slice looks.
  2. The target rotation is computed backwards from that winner. Each slice occupies 360 / N degrees, so the tool knows exactly which angle the centre of the winning slice sits at. It solves for the one rotation value that places that angle directly under the fixed pointer at the top of the wheel.
  3. A few extra full turns are added purely for animation. Somewhere between 6 and 9 additional 360° turns are tacked on before the spin, so the wheel visibly spins for a while before slowing into the predetermined answer — the extra turns never change which slice wins, only how long the animation takes to get there.
  4. The wheel eases to a stop over about four seconds, using a CSS transition with an ease-out curve, then the result is announced in the page and via an aria-live="polite" region for screen readers.

This is the opposite of the naive approach, which spins the wheel by some random amount and then reads off whatever segment happens to end up under the pointer. That approach is also uniform if implemented correctly, but it is much easier to get subtly wrong — for instance, by picking the random spin amount from a range that doesn't divide evenly by the number of segments, which quietly biases a couple of slices. Computing the rotation from the winner, rather than the winner from the rotation, removes that whole category of bug.

What people use a wheel spinner for

Common uses for a random wheel spinner, with example entries
Use caseExample entriesHandy option
Calling on students fairlyA class roster, one name per lineRemove winner after spin, so nobody gets picked twice in a session
Giveaway or contest drawEntrant names or ticket numbersCopy the list first so you have a record of exactly who was entered
Group decisionsRestaurant options, movie titles, "who does the dishes"Shuffle beforehand if the order of typing felt like it was influencing you
Streaming / community picksViewer usernames pasted from chatReset between segments so the list doesn't carry over to the next draw
Icebreakers & gamesTruth-or-dare prompts, discussion topics, dice-alternative choicesThe 1–10 and Yes/No presets fill the list instantly

Fairness & limitations

What "uniformly random" means here

Every spin draws from a uniform distribution over the current entry list: with N entries, each one has exactly a 1-in-N chance, and that does not change based on entry length, slice colour, or spin history. Spins are also independent — a name winning once does not make it more or less likely to win again on a fresh spin of the same list (checking "remove winner after spin" is what changes future odds, by shrinking the pool, not the randomness itself).

Pseudo-random, not cryptographic

The generator behind the pick is the browser's standard Math.random(), the same source almost every non-cryptographic web feature relies on. It is unpredictable enough for picking names, running a classroom draw, or settling an argument about dinner. It is not a cryptographically secure random number generator, and it carries no formal guarantee against a sufficiently determined adversary analysing the browser's internal state. Do not use this tool to draw numbers for a real-money lottery, a legally binding raffle, or anything where an auditable, tamper-evident source of randomness is a hard requirement — that calls for a purpose-built, certified system, not a browser tab.

What this tool does not do

  • No weighting. Every entry gets an identical share of the odds. There is no way to make one name twice as likely to win; if you want that, list it twice.
  • No shared or synced state. The entry list lives in your browser's local storage on this one device. It is not saved to an account, cannot be edited by two people watching the same draw remotely, and does not survive clearing your browser's site data.
  • No audit trail. The tool does not log which entries were ever on the wheel or which spins happened. If you need a record for a giveaway, copy the list and note the winner yourself before moving on.
  • A soft cap of 50 entries. Past that, slices get too thin to read, so extra lines are ignored (and the tool says so) rather than silently rendering an unreadable wheel.

Frequently asked questions

Is the wheel actually random, or does some segment win more often?

Every spin picks uniformly among however many entries you have typed — each segment has exactly a 1-in-N chance regardless of its size, colour or position on the wheel. The winner is picked first; the wheel's final rotation is then calculated backwards from that pick so the animation always ends precisely on the winning segment. It never reads off wherever momentum happens to stop it.

Doesn't a bigger or smaller slice change the odds?

No. Every entry gets an equal-size slice — 360° divided by however many lines you have — and an equal 1-in-N chance. Slice size here is purely visual; it does not encode probability the way, say, differently sized raffle tickets in a real drum might.

Can I use this for classroom picks, giveaways, or streams?

Yes — that is exactly the intended use: picking a student to call on, drawing a giveaway winner, choosing a discussion topic, or settling where a group should eat. It is a picking tool, not a certified lottery system; see the fairness section above for what that distinction means in practice.

If I check "remove winner after spin," how does that change future spins?

The entry that just won is deleted from the list once that spin finishes, so the next spin picks uniformly among whoever remains. It changes the odds for future spins only — each remaining entry now has a larger share of a smaller pool — and has no effect on the spin that already happened.

Is this "true" randomness or pseudo-random?

Pseudo-random. It uses your browser's built-in Math.random(), the same general-purpose generator almost every non-cryptographic website feature uses. That is a good fit for picking names or drawing entries, but it is not a cryptographically secure generator and should not be used to draw lottery numbers or anything with real money or legal stakes riding on formal unpredictability guarantees.

Do you store or see the entries I type?

No. Everything runs in your browser. Your list is saved only in your own browser's local storage, purely so it is still there the next time you open the page on the same device — it is never uploaded or sent anywhere.

Why does the spin take about four seconds?

It is a deliberate animation length: long enough to feel like a real spin, with an ease-out deceleration, without being tediously slow to sit through. If your system has "reduce motion" turned on, the wheel skips the animation entirely and reveals the winner immediately instead.

Is there a limit to how many entries I can add?

Yes, 50. Past that, slices become too thin to read reliably, so extra lines beyond the 50th are ignored and the tool tells you so rather than silently dropping them.

Can I share the exact wheel I used with someone else?

Not as a link — the entry list lives only in your own browser's local storage, not in a shareable URL. Use the Copy list button to copy the entries as plain text and paste them wherever you need to show what was used.

Go deeper