The Spin Wheels

About

Why this exists

There are plenty of spinner wheels already, and most of them work. What bothered us is narrower than "they are bad": the simplest way to build one is to spin a random distance and read off wherever the pointer stops. That can be perfectly fair, but then the fairness rests on how the distance was drawn and how the stopping point is read, which is hard for anyone watching to check. If a page is going to promise randomness, the promise should be the part that is engineered.

How this one works instead

The winner is drawn first, from the cryptographic random number generator in your browser, and only then is the rotation calculated to land the pointer on that slice. The animation is presentation. The draw already happened before the wheel moved.

The selection also uses rejection sampling rather than a plain remainder, which removes the small bias that appears whenever the number of slices does not divide evenly into the generator's range. That bias is under one part in four million even at the 1,000-entry limit, far too small for a statistical test to see in a practical number of draws, so the rejection step is tested directly: the check feeds the draw scripted numbers instead of random ones and confirms, for a range of wheel sizes up to the 1,000-entry limit, that every value in the uneven tail is thrown away and drawn again. The same check is run against a plain remainder, and it has to fail.

Separately, a chi-square test across 370,000 real draws checks the overall spread of results across the slices, and it has to reject a deliberately skewed picker that favors one slice by about a fifth. Both checks run before each release. A test that has never failed proves nothing.

What was left out on purpose

No accounts, because a wheel does not need to know who you are. No saved wheels on a server, because storing your lists would mean collecting them. No leaderboards, no social features, no newsletter, and no contact form — a form is a data-collection point, and we would rather publish an email address.

Those choices used to have a cost: with nothing stored, there was no way to save a wheel or send one to someone. Share links remove it without bending the rule. “Copy link” packs the list, and the remove-the-winner setting, into the link itself, after the # sign, and browsers never send that part of an address to a server. Bookmark the link to keep a wheel, or send it to give someone the same one. The cost that remains is the honest one: lose the link and we cannot recover the wheel for you, because we never had it.

Who made it

A small independent project, not a company. If something is broken, wrong, or missing a wheel you expected to find, email contact@thespinwheels.com — it reaches a person.