Decision Wheel Spinner
Type your options, hit spin, let the wheel decide. Save and share with a copyable link.
What this tool does
Spins a fair, randomised wheel over any list of options you type — the digital version of pulling a name out of a hat. Useful for picking what to eat, drafting teams, doing a fair raffle, deciding who has to make the next coffee, or settling any "I don't know, you pick" deadlock. Each option becomes a colourful slice of the wheel; the pointer at the top lands on whichever slice you spin into. Randomness comes from crypto.getRandomValues() with a per-slice jitter so the result feels alive even with two options. Once a winner is picked, you can remove them and re-spin — handy for raffles or drafts. The current wheel can be shared as a URL hash; recipients open the link and see the same options without any login or sync.
How to use it
Type your options into the textarea — one per line. The wheel renders live as you type, with up to a dozen distinct colours rotating across slices. Hit Spin the wheel; the wheel rotates a few full turns plus a randomised landing offset, then the pointer at top reveals the winner. Use Remove winner to drop the picked option (great for raffles where each name only wins once). Shuffle randomises the order of slices — useful if you want a different visual layout. Copy share link serialises the current options into a URL hash so anyone opening the link sees the same wheel.
How the spin works
Each option occupies 360° / N of the wheel. To spin, we draw a 32-bit random integer with crypto.getRandomValues(), take it modulo N to pick the winning slice, then add a small in-slice jitter so the pointer lands somewhere believable inside the slice instead of always dead-centre. The wheel rotates 5-7 full turns on top of the landing angle, with a CSS cubic-bezier easing curve that decelerates over 3.6 seconds — long enough to feel like a real wheel, short enough that you don't get bored. Share links serialise the option list as base64-url-encoded JSON in a #wheel= hash. Hash data never hits the server; the URL is a self-contained payload.
What people use it for
A few common cases — but really anything you can list in a textarea works.
| Use case | Example options |
|---|---|
| Pick a restaurant | Pizza, sushi, burgers, Thai, Indian |
| Office raffle | Team member names — remove each winner |
| Classroom picker | Student names for who answers next |
| Game choice | Mario Kart, Smash, Catan, Codenames |
Frequently asked questions
Is the spin actually random?
crypto.getRandomValues(), which is a CSPRNG — every option has equal odds. The visual rotation is just animation on top of an already-decided result.Can I share my wheel?
Can I run a raffle?
How many options can the wheel handle?
Does the share link upload my list?
#) is never sent to the server by browsers. The recipient's browser decodes the list locally.
EN
PT
ES