# Pick one at random, provably — Redeal

*Canonical page: https://redeal.dev/random*

A random draw nobody can rig. Everyone in the draw seals a random ticket
their browser generates locally; the winning number comes from the League
of Entropy drand beacon (quicknet) at a round that is fixed in the deal
before anyone seals and publishes only after sealing closes. One winner, a
signed certificate, and a draw anyone can re-check. No account, no email.
2 to 100 parties on the web form (the protocol allows 10,000).

## The flow

1. **You set the terms.** List who's in the draw, set the seal-by deadline,
   and choose what happens if someone doesn't answer: the deal is voided
   and their silence is recorded on the certificate, or the deal simply
   expires with nothing recorded.
2. **Each person gets a private link.** The link is the invitation and the
   only way in; it dies with the deadline.
3. **Everyone seals a ticket.** Each browser generates a 32-byte random
   nonce locally and publishes only its hash. The ticket stays hidden until
   everyone has sealed, then all tickets open at once.
4. **The beacon decides.** Once all tickets are open, the server fetches
   the pre-declared drand round's value itself — no caller can supply one.
   Every ticket is hashed, XORed with the beacon value, and the lowest
   digest wins (random.v1, xor_sha256_lowest). The certificate attests the
   round and the beacon value; cross-check it at
   https://api.drand.sh/52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971/public/{round}
   and verify the certificate at https://redeal.dev/verify.

Why it can't be rigged: the entropy round is pinned before any commitment,
its value is published by an independent public beacon only after sealing
closes, and every party must open the exact ticket they sealed.
