What “fair” means here
Each configured side has an equal probability on every flip. Equal probability does not mean outcomes must alternate or that a short session will contain exactly the same number of each side. Streaks and uneven short samples are normal.
Selection happens before animation
The result comes from crypto.getRandomValues() in your browser. Animation only reveals that preselected result; disabling motion does not change the outcome. There is no silent Math.random() fallback.
Your labels stay local
Custom choices are stored only in this browser so they can survive a refresh. Label text is not placed in the URL and is never attached to product events. Use Restore Heads/Tails to remove it.
Everyday decisions only
Browser Web Crypto provides cryptographically strong pseudo-random values, not proof of physical randomness or an independently audited draw. Do not use this tool as evidence for legal, gambling, prize, or other high-stakes outcomes.