Wheel Spinner

6 entries
123456

The winner is drawn with crypto.getRandomValues before the wheel moves, and the animation is then aimed at that slice. The spin cannot change the result, and every entry has exactly the same chance. Repeat a name to give it more slices.

Nothing you enter here is stored, logged or shared.

Paste a list of names or numbers and spin the wheel to pick one at random. The winner is drawn before the wheel moves, so the animation cannot influence the result.

How to use

  1. Type or paste your entries, one per line.
  2. Press Spin. The winner is announced when the wheel stops.
  3. Remove the winner and spin again to draw without replacement.

Why the winner is chosen before the wheel moves

The order of operations here is the whole design. A value is drawn from the browser's cryptographic random source with rejection sampling, so every entry has exactly the same chance. Only then is the final rotation computed - enough full turns to look like a spin, plus whatever offset lands the pointer on the slice that already won.

The obvious alternative is to spin the wheel with some randomised force and read off whichever slice stops under the pointer. It feels more honest and it is less fair, because the outcome then depends on the animation: the easing curve, the frame rate, floating-point rounding in the physics, how the browser throttles a background tab. None of those are uniform, and some of them favour particular slices consistently. A wheel that runs slightly differently on a slow laptop is a wheel with a slightly different probability distribution.

Drawing first makes the animation purely decorative, which is what it should be. The result is identical whether you watch the spin or reload the page mid-turn.

Weighting, and drawing several winners

The only way to make one entry more likely is to list it more than once. Duplicates are kept rather than merged, and each line is one slice, so a name appearing three times in a list of ten holds three of the ten slices and wins three times in ten.

That is deliberate. A weighting field hidden in a settings panel is invisible to everyone watching, whereas a name occupying three slices of the wheel is something the room can see and count. If a draw needs to be seen to be fair by the people in it, the weighting should be on the wheel.

For several winners without repeats, spin, remove the winner, spin again. Each removal takes that slice off, so subsequent draws come from what remains - which is the right model for picking teams, an order of presenters, or a ranked set of prizes. Removing rather than re-drawing also means the wheel visibly shrinks, which again is something everyone can follow.

Where your list is kept

Nowhere, unless you ask. If you tick the save box, the list is written to local storage, which is a per-site store inside your own browser on that one device. It is not an account, it is not synced, and it is never sent to this site or anywhere else.

The consequences follow from that. A list saved on your laptop will not be on your phone. Clearing your browser data removes it. A private window will not see it, and neither will a different browser on the same machine. Unticking the box erases it immediately.

This is the trade for not asking you to sign up. If you need the same list in two places, keep it in a note and paste it in.

When a wheel is not the right tool

For classroom questions, standup order, retro facilitation, choosing where to eat, or a prize draw among people who already trust the organiser, a wheel is exactly right: it is fast, it is visible, and it removes the awkwardness of somebody deciding.

It is not the right tool where the outcome has to be provable to people who were not watching, or who have reason to doubt the person running it. Nothing here produces evidence: no seed is published, no commitment is made in advance, and a screenshot proves only that a screenshot exists. A draw with money or legal weight behind it needs a documented procedure - a published seed, a commitment made before entries close, or an independent observer - and that is a different kind of instrument entirely.

Why a visible draw changes how it feels

A decision made privately and announced is procedurally identical to a draw everyone watches, and it lands completely differently. Research on procedural justice consistently finds that people accept outcomes they dislike when they consider the process fair and transparent, and a visible random draw is about the cheapest form of that available.

This is why the wheel is useful in situations where the actual randomness is beside the point. Nobody is worried that a facilitator would rig who speaks first in a retrospective; the value is that the awkwardness of choosing is removed from a person and given to a mechanism everyone can see.

The same logic explains why a shrinking wheel works better than a redraw. When a winner is removed and the remaining slices grow, everybody can see that the odds changed and how - and that is far easier to accept than a second draw from a list that looks identical to the first.

Where a wheel actually earns its place

In a classroom, cold-calling by wheel spreads participation more evenly than a teacher's memory does, and it removes the implication that being asked was a judgement. The usual refinement is to remove each name after it comes up, so the class works through everyone before anyone repeats.

In a standup or a retrospective, it settles speaking order without seniority deciding it, which matters more in distributed teams where the person who unmutes first tends to be the same person every day. For facilitation, a wheel of prompts - what surprised you, what slowed you down - breaks the pattern where retrospectives produce the same three observations each sprint.

Outside work it handles the decisions that cost more to discuss than to make: which restaurant, who goes first, which of the four equally good options. The wheel is not better at choosing than you are; it is better at ending the conversation.

Making a draw that people who were not there can trust

For anything with money or obligations attached, a screen recording proves nothing - it shows a result, not that the result was determined fairly. The standard construction is commit-and-reveal: before entries close, publish a hash of the entry list together with a secret seed. After the draw, publish the list and the seed so anyone can recompute the winner and check the hash matches what was committed.

The seed can also be sourced from something nobody controls and everybody can verify afterwards, such as the hash of a Bitcoin block at a stated height or a published randomness beacon. That removes even the organiser's ability to grind seeds until they like the outcome.

In regulated prize promotions the requirements are set by law rather than by cryptography, and commonly involve documented procedures and independent observation. Tools like this one are for the draws that do not reach that threshold, which is nearly all of them.

This is a general description rather than legal advice; if a promotion is subject to gambling or consumer protection rules in your jurisdiction, the applicable requirements come first.

Weighting that stays visible

The only way to make an entry more likely here is to list it more than once, and that is a deliberate constraint rather than a missing feature. A weight field in a settings panel is invisible to everyone watching; a name occupying three of ten slices is something the room can count.

It is also easier to reason about. Three entries out of ten is thirty per cent, and you can see thirty per cent of the wheel. A weight of 3.0 next to entries weighted 1.0 requires everyone to do arithmetic they will not do, and to trust that the arithmetic is what you think it is.

Where weighting genuinely needs to be fine-grained - a raffle where tickets were bought in different quantities - a list with one line per ticket is still the honest representation, and generating that list from your sales data is a two-line script rather than a feature.

Animation, motion sensitivity and reading the result

A spinning wheel is a large moving element, and for some people that is not a neutral piece of decoration: vestibular disorders make sustained rotation genuinely unpleasant, which is why operating systems expose a reduced-motion preference and why interfaces should respect it.

Because the winner is drawn before the animation starts, the animation is presentational. Shortening or skipping it changes nothing about the result, which is the right property for any motion in an interface: it should be removable without removing information.

The result also needs to exist as text, not just as a pointer position. Announcing the winner in a live region means a screen reader reads it out, and it means the outcome is legible to anyone who looked away, joined late, or is watching a shared screen at a resolution where the wheel labels are too small to read.

Frequently asked questions

Is the spin actually fair?
Yes, and the order of operations is what makes it so. The winner is drawn first from crypto.getRandomValues, the browser's cryptographically secure random source, using rejection sampling so no entry is favored. Only then is the rotation calculated to land on that slice. Many wheel spinners do the opposite - they run an animation and read whichever slice ends up under the pointer - which makes frame timing and easing part of the draw.
Can I make one name more likely to win?
Yes. Enter it on more than one line. Duplicates are kept rather than merged, and each line is one slice, so a name listed three times out of ten has a 30 per cent chance. That is the only weighting this tool offers, and it is deliberate: it is visible on the wheel itself rather than hidden in a settings panel.
Where is my list saved?
Only in this browser, on this device, and only if you tick the box. It is kept in local storage, which never leaves your machine and is never sent to this site or anyone else. Untick the box to erase it immediately. Clearing your browser data also removes it.
Will my list be there on another device?
No. There is no account and nothing is synced, so a list saved on your laptop will not appear on your phone. That is the tradeoff for not asking you to sign up or holding your data on a server.
How do I draw several winners without repeats?
Spin, then use Remove winner, then spin again. Each removal takes that entry off the wheel, so the next draw comes from what is left - the usual way to pick teams or an ordered set of prizes.
How many entries can the wheel hold?
Up to 500. Past about 40 the slice labels are hidden because they become too small to read, but the wheel still spins and the winner is still announced in full.

Last updated:

Report a problem

Include the steps, expected result, and actual result. Remove secrets and personal data.

Related tools