Before animation
Selection comes first
The winner is selected from the eligible entry tickets before the wheel animation begins. The animation then lands on that already selected result; it does not calculate or alter the winner.
Transparent randomness
Run 100,000 selections with the same randomInt implementation used by Random Spin App. The audit reports expected and observed distributions without assigning a misleading pass or fail score.
Checking for a locally saved wheel…
Before animation
The winner is selected from the eligible entry tickets before the wheel animation begins. The animation then lands on that already selected result; it does not calculate or alter the winner.
Unbiased range
crypto.getRandomValues() supplies 32-bit values. Rejection sampling discards values from the small uneven remainder before applying modulo, so every eligible ticket maps to the same number of possible values.
Entry tickets
Each non-empty line is one ticket. Duplicate labels therefore receive multiple tickets. “Win only once” removes selected tickets from later picks; “Can win again” leaves them eligible.
A finite random sample naturally fluctuates around its expected distribution. This tool makes that variation inspectable across 100,000 selections, but it cannot prove that future outcomes will follow a particular pattern.
Random Spin App is intended for casual classrooms, meetings, giveaways, tasks, parties, events, and streams. It is not certified for gambling, regulated draws, cryptographic key generation, safety-critical allocation, or other high-stakes uses.
Review the production random integer source, winner selection source, and randomness unit tests.