Commit-reveal joint randomness, taught by running it. Every party first publishes a commitment, SHA-256 of its secret contribution mixed with the ceremony salt, and only after all commitments are on the table does anyone reveal. The ceremony output is SHA-256 over the ordered reveals: as long as one party contributes fresh entropy, no coalition of the others can steer the result, and no participant can change its contribution after committing. A dedicated panel shows the one attack commit-reveal does not stop, the last-revealer abort, and names what real protocols add.
Declare the ceremony salt and the number of simulated parties. Each party's contribution is fresh crypto.getRandomValues entropy unless you type one in; a typed contribution is your declaration, and the page never checks it for strength. Commitments are computed and published first; reveals happen only after every commitment is published.
Commit-reveal binds what a party can reveal, but it cannot force a party to reveal at all. The last party to reveal sees every other contribution, can compute the final output for each of its own possible reveals, and can refuse to reveal (abort) whenever the outcome is not the one it wants. Repeat the ceremony with a aborting party and the distribution of accepted outcomes skews toward that party's preference: the abort itself is the bias. Run the demonstration below to watch a 3-party ceremony where party 3 is the last revealer and aborts an unfavorable outcome.
What real protocols add: economic penalties escrowed against the commitment (an abort burns the deposit), verifiable delay functions so the last revealer cannot precompute its options in time, and threshold schemes (for example k-of-n verifiable secret sharing) where the reveal survives any minority of refusals. None of these are simulated here; this page stops at naming them.
Positive scope: this page shows the commitment idea end to end and nothing more. It is a teaching model, not a randomness beacon, and its output must not be used for drawing lots, key generation, signing, or any decision that matters.