Back to raffle
Cryptographic proof
Verify results
2/8/26 2PM Timberwolves Game to Support Minneapolis Families
This raffle uses a commit-reveal random selection process. A secret seed was locked in when the raffle was created — before anyone entered — by publishing its SHA-256 fingerprint (the commitment). Because the seed was fixed before any entrant existed and the final draw seed also depends on the full entrant pool, the organizer cannot have chosen a seed that favors a particular entrant. The checks below run entirely in your browser.
Seed commitment
Published when the raffle was created, before entries opened. The revealed seed for each draw below must hash to exactly this value.
ca49b61d7add3c607e0b9c6e9bc70652b8914787cf1578bf1eb2f604ca88a914
How it works
- 1 At creation, a secret server seed is generated and its SHA-256 commitment is published (above). The seed itself stays hidden until the draw.
-
2
At draw time the seed is revealed and combined with the full entrant pool to derive the draw seed:
SHA256(server_seed + "|" + snapshot). - 3 Each entrant gets virtual "slots" equal to their entry count, and the draw seed deterministically selects the winning slots.
- 4 Anyone can confirm the revealed seed matches the commitment and replay the selection to reproduce the same winners.
commitment = SHA256(server_seed) // published before entries opened
snapshot = "id:count,id:count,..." // eligible entrants, sorted by id
draw_seed = SHA256(server_seed + "|" + snapshot)
slots = expand entrants to slot pool based on entries_count
for N = 0, 1, 2... until all winners picked:
// rejection sampling: redraw instead of biasing low slots
for attempt = 0, 1, 2...:
value = parseInt(SHA256(draw_seed + ":" + N + ":" + attempt).substring(0, 8), 16)
if value < 2^32 - (2^32 mod slots.length): break
index = value mod slots.length
winner (position N+1) = entrant owning slot[index]
slots.removeAll(winner's slots)
Draw #1
Feb 6, 2026 at 10:46 AMWinners selected (1)
Sophie Horn
Seed
3166c5500f12bdf4034f1c2aed14bdaa8ade59b462f4e11ce6b09ac5beb91aec
Eligible entrants (7 entrants, 29 total slots)
[#1042(5), #1043(2), #1044(4), #1045(10), #1046(2), ...]
Entrant #1042: 5 entries
Entrant #1043: 2 entries
Entrant #1044: 4 entries
Entrant #1045: 10 entries
Entrant #1046: 2 entries
Entrant #1047: 4 entries
Entrant #1048: 2 entries
Draw #2
Feb 6, 2026 at 1:45 PMWinners selected (1)
Molly Waller
Seed
6d6f82ca0bdc73c3a803125f273f2b2fa8c9cb5fd51271adb02cc654972f5148
Eligible entrants (6 entrants, 19 total slots)
[#1042(5), #1043(2), #1044(4), #1046(2), #1047(4), ...]
Entrant #1042: 5 entries
Entrant #1043: 2 entries
Entrant #1044: 4 entries
Entrant #1046: 2 entries
Entrant #1047: 4 entries
Entrant #1048: 2 entries
Draw #3
Feb 6, 2026 at 8:10 PMWinners selected (1)
Kate Woeste
Seed
7d34426ff2821f99075c33223177fd197d631a26e1cd7d9c85bc191604bf753e
Eligible entrants (5 entrants, 15 total slots)
[#1042(5), #1043(2), #1044(4), #1046(2), #1048(2)]
Entrant #1042: 5 entries
Entrant #1043: 2 entries
Entrant #1044: 4 entries
Entrant #1046: 2 entries
Entrant #1048: 2 entries