Wheel of US States
All 50 states, one wheel, 7.2° apiece. Built for geography practice, trivia prep, and the noble tradition of letting fate pick the next road-trip destination.
Spin: all 50 states
Fifty thin segments — labels are small at this density, so the winner is always announced in text below.
50 equal segments, computed at build time
Every figure on this page is produced by the engine that runs the wheel above, at the moment the page is built, so the prose cannot drift from the code. The general rules for how any wheel is divided and coloured are in the guide Segment geometry and colours; this section applies them to the 50-state list. The engine divides the circle into 50 equal segments of 7.2° each, in list order, with boundaries at exact multiples of 360/50: the first segment, Alabama, runs from 0° to 7.2°, and the last, Wyoming, from 352.8° to 360° with its midpoint at 356.4° — the angle the wheel decelerates onto when that state wins. Each segment is exactly 1/50 of the wheel, a probability of 2.00%.
Colours cycle through a fixed palette of 8. The engine walks the list assigning the first palette colour, then the second, and so on up to colour 8, then starts over, which means a segment's colour is decided by its position, not by the state. 50 divided by 8 leaves a remainder of 2, so the last segment (Wyoming) lands on palette colour 2 (#2563eb) while the first (Alabama) has palette colour 1 (#7e22ce). They differ, so the one special rule — the last and first segments must never share a colour — has nothing to do on the stock list. Strike a single state and it does: a 49-entry list leaves a remainder of 1, the plain cycle would give the last segment #7e22ce, the same colour as the first, and the engine substitutes palette colour 2 (#2563eb) instead. Those values come from calling the engine on the trimmed list; nothing here is typed by hand.
The geometry exists for the eyes. 50 segments of 7.2° make the labels small — the hint above the wheel says so, and the result box names the winner in text for exactly that reason — but thinness changes nothing about the draw. The winner is picked as an index into the list, and only afterwards is the wheel rotated so that segment's midpoint stops under the pointer.
One spin, byte by byte
When you press Spin, the engine asks the browser's cryptographically secure generator,
crypto.getRandomValues, for random bytes and maps them onto the 50 states by rejection
sampling. A span of 50 needs 6 bits, so the engine keeps the low 6 bits of one byte —
a mask of 63, giving a candidate from 0 to 63 — and accepts the candidate only if it is
below 50. A candidate at or beyond 50 is discarded outright and a fresh byte is drawn; it is never
folded back into range with a remainder, which is the operation that would favour low-numbered states.
Of the 64 possible candidates, 50 are accepted, an acceptance rate of 78.1%, so a redraw is uncommon and the pick is still instant.
Here is a spin computed at build time with scripted bytes — scripted so the example is
reproducible; a live spin draws from crypto.getRandomValues and cannot be predicted
this way. The first byte is 250; masked to 6 bits it becomes
58, which is at or beyond 50, so the engine rejects it. The second byte is
17; masked it is 17, below 50, so it is accepted and becomes
the winning index. Index 17 in the alphabetical list is
Louisiana, and the engine reports a target angle of
126°, the midpoint of that segment. Only now does the roughly four-second
ease-out rotation begin, calculated to stop on a segment that has already won. If your system
asks for reduced motion the rotation is skipped and the identical draw is announced
immediately.
Each spin is an independent draw with no memory of the last: Louisiana is exactly as likely on the next spin as any other state. That has a practical consequence for anyone hoping to get through the list by spinning repeatedly. The chance that one particular state has still not come up after 50 ordinary spins is (1 − 1/50)50, which works out to 36.4% — computed here from the engine's segment count. Repeated spins do not cover the wheel; eliminator mode, below, is the mechanism for that.
A geography drill that runs itself
The classic classroom uses: spin a state, then name its capital, place it on a blank map, recall a fact, or find its flag. Because the draw is uniform, the drill does not gravitate to the famous states the way a teacher's off-the-cuff picks do — Delaware and the Dakotas come up exactly as often as Texas. With eliminator mode on, a class can work through all 50 in one sitting with no repeats, for as long as the tab stays open: the status line starts at 50 remaining, and after every spin the result box lists the states still in, which is the record of what has been done. Elimination progress is not saved — like every spin and result, it exists only on the page and ends with the tab, so a run cannot be resumed on another day.
Working through all 50: eliminator mode, step by step
Tick Eliminator mode under the result box and the rules invert: each spin removes the state it lands on, the status line counts how many remain and how many are out, the result box lists every state still in, and the last state standing is the overall winner. Each elimination is a fresh uniform draw over the states that remain, so the first spin is a 1-in-50 draw, the next 1-in-49, and so on. Walking 3 scripted spins through the engine, every one answering the byte 4, shows the list closing up after each removal:
- Spin 1: 50 states remain, each at 2.00%. Byte 4 selects index 4, which is now California ; it is removed, leaving 49 remaining and 1 eliminated.
- Spin 2: 49 states remain, each at 2.04%. Byte 4 selects index 4, which is now Colorado ; it is removed, leaving 48 remaining and 2 eliminated.
- Spin 3: 48 states remain, each at 2.08%. Byte 4 selects index 4, which is now Connecticut ; it is removed, leaving 47 remaining and 3 eliminated.
The same byte lands on a different state each time because the list it indexes has lost an entry — a removed state leaves no gap, the states after it shift down by one, and the next draw is over the shorter list. After those 3 spins the status line would read 47 remaining, 3 eliminated. Covering the whole wheel takes 49 spins, one per eliminated state. To show the engine running a complete elimination, a scripted source that always answers the byte 0 removes whatever is first in the remaining list every time: Alabama goes first, Wisconsin is the last to go, and Wyoming is reported as the survivor after exactly 49 spins. Ask the engine for one more spin and it refuses with “This elimination is finished — reset to run it again.” — elimination states are immutable values, so a finished run cannot be quietly extended.
Two properties matter for reading the result. First, the survivor is exactly as likely to be any state: every entry ends with probability 1/50 of being last, as the methodology page sets out. Second, editing the list during an elimination restarts it on the new list; the eliminated states from the previous run do not carry over. Untick and re-tick the box to start a fresh run on the same list.
Editing the list: commas, duplicates, and caps
The text box under the wheel holds the 50 names, one per line, and the wheel redraws as you edit. The parser has one rule worth knowing before you paste: a list on a single line that contains commas is split on the commas, while a multi-line list keeps its commas. Pasting “Ohio, Oregon, Utah” on one line into an empty box gives 3 entries, which is what you meant. Pasting “Washington, D.C.” alone on one line gives 2: “Washington” and “D.C.”, which is not. Put the same text on one line among others — “Washington, D.C.” on one line and “Puerto Rico” on the next — and the parser returns 2 entries with the comma intact: “Washington, D.C.” and “Puerto Rico”. On this page the box already holds 50 lines, so an extra line typed at the end keeps any comma it contains.
Duplicates are not merged unless you ask. A second “Texas” line is a second segment: the engine builds a 51-segment wheel in which Texas wins 3.92% of the time and every other state 1.96% — a computed reminder that the wheel weights entries, not names. Tick Remove duplicate entries and the parser drops repeats case-insensitively, keeping the first occurrence: “Texas”, “texas” and “TEXAS” on three lines become 3 entries with the box unticked and 1 entry, “Texas”, with it ticked. Entries are trimmed of surrounding spaces and blank lines are dropped.
The caps are explicit. A wheel holds at most 100 entries, so the stock list leaves room for 50 more; ask the engine to parse 101 lines and it answers “A wheel holds at most 100 entries — this list has 101. Remove some entries; nothing was silently dropped.” rather than trimming the list. Each entry may be up to 80 characters — the longest name on the state list is 14. Reset list restores the 50 states and clears the duplicate switch; your edited list otherwise lives in this browser's local storage and nowhere else.
Trivia, travel, and bar bets
Trivia hosts use a state spin as a round theme generator. Travel-minded couples use it as road-trip roulette — spin three candidates, veto one each, drive to the survivor. And for the long-haul ambitious, the fifty-state bucket list gets a lot more interesting when the order is random. The list stays editable: trim it to the Lower 48, to states you have not visited, or to your region — the remaining states stay exactly equally likely. The engine confirms it: a 48-state list, whichever two you strike, is 48 segments of 7.5° at 2.08% each.
Sharing the state list
Copy share link writes the current list into the page address as a
#items= fragment: each entry is percent-encoded and the entries are joined with
|. For the stock list the engine produces a fragment value of 491
characters, beginning Alabama|Alaska|Arizona|…, inside a link 543 characters long;
the cap on the fragment value is 1800, so a list of state names has room
to spare. Names with spaces are encoded on the way out and restored on the way in —
New Hampshire travels as New%20Hampshire. Browsers do not include
the fragment in web requests, so the recipient's browser rebuilds the wheel locally without
sending the list to the hosting server; a legacy ?items= link is still accepted, an
over-long list gets an honest error instead of a truncated link, and a damaged link is reported
as damaged. The recipient gets your list as it was when you copied; their edits stay in their browser
and yours in yours.
Common misreadings
- “Bigger states get bigger segments.” No: every state is 7.2°, and the draw is by index over the list of names, not by area or population.
- “The spin decides.” The pick precedes the animation; the rotation is calculated to stop on the segment that already won, and a reduced-motion system sees the same draw with no rotation at all.
- “A state that has not come up is due.” Each spin is independent; after 50 spins a given state is still unseen 36.4% of the time. Use eliminator mode for coverage.
- “A duplicate line is harmless.” It is a second segment with its own share of the wheel — 1.96% more on a 51-entry wheel. Tick Remove duplicate entries to collapse it.
- “Eliminator mode changes the odds.” It changes what a spin means, not the fairness: each elimination is uniform over the remaining states, and the survivor is any given state with probability exactly 1/50.
Related wheels and guides
For another fixed factual list there is the Zodiac Wheel with its twelve signs. Big-range random draws live on the Number Wheel (up to 1–100), and the Letter Wheel covers A–Z. For the rules behind the arcs and colours on any of them, read Segment geometry and colours; the rest of the guides are listed at /guides/.
Frequently asked questions
Are all 50 states really on the wheel?
Yes — exactly 50, Alabama through Wyoming alphabetically, each on a 7.2° segment with an identical 2.00% chance. The list is pinned by an automated test, so a state cannot silently go missing or appear twice.
Why isn’t Washington, D.C. or Puerto Rico included?
Because they are not states, and this wheel makes a factual claim in its name. Both are one editable line away: add "District of Columbia" or "Puerto Rico" to the list and the wheel becomes a 51- or 52-segment wheel of your choosing.
Can we work through every state without repeats?
That is eliminator mode: each spin removes the drawn state, so a class can work through all 50 in random order with no repeats in one sitting, while the tab stays open. A complete run takes 49 spins; the status line under the toggle counts how many states remain and how many are out, and the result box lists every state still in after each spin. The run is not saved — elimination progress exists only on the page and ends with the tab, so it cannot be carried over to another day.
Do bigger states get bigger segments?
No — every state gets the same arc regardless of area or population. This is a uniform draw over the list of names, not a population-weighted sample; Wyoming and California are equally likely.
Does a state that has not come up for a while become more likely?
No. Each spin is an independent draw over the same 50 states; nothing about previous spins, the wheel's resting position or the timing of your click reaches the engine. Computed from the segment count, a given state is still unpicked after 50 ordinary spins 36.4% of the time — for guaranteed coverage, use eliminator mode.
What happens if I edit the list in the middle of an elimination?
The elimination restarts on the new list. States eliminated in the previous run are not carried over, and the status line starts counting again from the full new list. To rerun the same list, untick and re-tick eliminator mode.
I pasted the states as one comma-separated line. Why did that work?
Because a single line containing commas is split on the commas, while a multi-line list keeps its commas inside entries. "Ohio, Oregon, Utah" on one line parses to 3 entries; "Washington, D.C." as the only line parses to 2. Once the box holds more than one line, commas stay where you typed them.
How do I share a trimmed list?
Edit the list, then press Copy share link. The entries are percent-encoded into a #items= fragment of the page address — the stock list gives a 543-character link, under the 1800-character cap on the fragment value. Browsers do not include the fragment in web requests, so the recipient's browser rebuilds the wheel locally; their later edits stay in their browser and yours in yours.
Factual list, local processing: the 50-state list is test-pinned; your edits to it stay in this browser. How picks are drawn is on the methodology page.