Randomness Audit

This page lets you inspect how an equal-entry random simulation behaves: run thousands of picks with the same browser random source used by the wheel and read the distribution yourself. It is a transparency tool, not a certification of an individual spin.

Run a spin test

Runs locally

The audit executes in your browser. Your list never leaves your device.

Same source choice

crypto.getRandomValues() where supported, with the fallback clearly labeled.

Copyable simulation

Copy a run as CSV to review or share the observed counts.

Run a spin test

Enter a list (or keep the sample), pick how many spins to simulate, and run the test. Everything happens in your browser. Nothing is uploaded.

How to read the results

Independent random draws often produce unequal counts, although exact equality is possible and not guaranteed. With 6 entries and 1,000 simulated picks, each entry is expected to win about 167 times, but an ordinary run may vary around that number. Equality or inequality in one run proves neither fairness nor manipulation. Across many independent draws, observed percentage shares may tend toward expected shares, but a particular sample can still deviate.

Run the test twice and you will get different numbers. That is expected from independent draws. A roughly balanced table is useful evidence that this simulation is behaving as expected, but it cannot prove that every possible implementation is unbiased. A deliberately manipulated system could still be written to pass a simple frequency demonstration.

Expected range Results vary around the expected share.

What this test actually runs

This audit is a separate equal-entry simulator. It uses crypto.getRandomValues() from the Web Crypto API in modern browsers, with Math.random() as a clearly labeled fallback on old browsers. The real wheel uses the same source choice. The tool tells you which source this browser is using.

The simulator maps random values to entries with rejection sampling, which avoids the small bias a plain modulo can introduce. It does not exercise the wheel animation, weights, result history, exported files, or the exact event path of a real spin. The fairness page explains how those parts fit together.

Limits, stated plainly

This audit shows one simulation's observed distribution. It does not inspect a past spin, verify the code served to another device, detect browser extensions or page changes, prove that a host did not re-spin, or create tamper evidence. ChoiceSpin is not a certified lottery system, and this page does not make regulated contests legally compliant. For official sweepstakes, follow your platform's rules and local laws.

Audit questions

Why might the counts be unequal?

Independent random draws often produce unequal counts, but exact equality is possible and not guaranteed. Equality or inequality in one run proves neither fairness nor manipulation. Across many draws, observed percentage shares may tend toward expected shares, while a particular sample can still deviate.

Is this the same generator the real wheel uses?

It uses the same browser random source choice: crypto.getRandomValues() in modern browsers, with a clearly labeled Math.random fallback on old ones. This page is a separate simulator, so it does not replay or certify the exact code path of a real wheel spin.

Can I test my own list?

Yes. Paste up to 100 entries, one per line, and run the audit against your exact list. The expected share updates to match the number of entries.

Does this make ChoiceSpin a certified random number generator?

No. It shows the observed distribution of this local simulation. It is not a security audit, tamper-proof record, or legal certification. For regulated draws, follow your platform's and country's rules.

Try the real wheel

The wheel uses the same browser random-source policy, not this simulator's exact event path. Add your entries and let it make the pick.

Spin the wheel