SpinPulse

How the Random Wheel Works

Understand equal and weighted probabilities, no-repeat participation and how the wheel selects and saves a winner before animating it.

Equal weights give equal chances

If N eligible entries have equal weights, each entry has probability 1 / N. Six equally weighted choices each have a one-in-six chance. Disabled entries do not participate. In a no-repeat round, previously selected entries also sit out.

Weights change the next draw

For an eligible entry i, P(i) = weight(i) / sum of all eligible weights. If Option A has weight 3 and Option B has weight 1, their chances are 75% and 25%. These probabilities do not guarantee three A results in every four spins.

Four equally likely tickets: A owns three; B owns one. Total weight: 4.

Labels do not define identity: two entries called Sam are separate choices. Their probabilities add if you count results by that shared label. See how to set weights and interpret observed frequencies.

Three selection modes

Random

Every enabled valid entry is eligible on each spin. Repeats are allowed. The studio requires at least two eligible entries to start a Random spin.

No Repeats

Start a round to make entries eligible. A selected entry sits out for the rest of that round. The final remaining entry can still be selected. When the round completes, start a new round manually.

Fair Round

Fair Round uses the same no-repeat eligibility rules, framed around giving participants a turn. Disabling someone excludes them; re-enabling an already selected entry does not give them another turn in that round. With a fixed eligible list, weights affect selection order, not the number of turns in a completed round.

Randomness and animation are separate

The browser adapter uses crypto.getRandomValues to obtain unsigned 32-bit values. It rejects values outside a range divisible by the eligible total weight before mapping a value to a ticket. This avoids modulo bias. The selection code chooses the entry that owns that ticket. When only one entry remains in a round, it is selected directly.

The winner is selected and saved before presentation animation. Wheel speed, pointer appearance, the stop button and Three.js rendering do not decide the winner. If rendering fails, the committed winner remains available in text.

Try the probability simulator

Compare expected and observed counts over up to 10,000 synthetic selections. The example runs separately from your saved wheel and never writes spin history. Repeated runs will vary; a simulation does not prove future outcomes or certify a draw.

Saved results, recovery and undo

A successful spin commits its result to browser storage before it is shown. Reloading does not redraw that result. If saving fails, Retry Save retains the pending transaction; a stale conflicting change from another tab is rejected.

Remove Winner disables the entry. Undo Disable reverses that action. Undo Last Spin reverses the latest eligible spin and its round participation change. Later eligibility edits can make undo unavailable.

Limits of local records

Local history, exported snapshots and simulator results are not independently authenticated draw certificates. The app does not provide certified randomness, cryptographic proof of results or an independently audited draw. Clearing site data can remove your records; export a backup if you need a separate copy.