Player actions create random perturbations
Every player's previous-round decision time (ElapsedMs) and bet size (Amount) are written to the event stream in order.
BET 120CALL 120RAISE 360CSRP uses every player's previous-round decision time and bet size as random factors, then combines them with system randomness to draw the next card in real time. Randomness comes not only from code, but also from physical-world perturbations created by live play.
The first layer comes from real player actions and timing differences across the table. The second comes from a secure system random source. Only after they are fused is the next card selected.
Every player's previous-round decision time (ElapsedMs) and bet size (Amount) are written to the event stream in order.
BET 120CALL 120RAISE 360For every draw, the system obtains a fresh 32-byte value from the operating system CSPRNG. It is used once, then discarded.
The action-event digest and system random value are combined through HMAC-SHA256, then rejection sampling maps the result fairly to the remaining deck.
Players cannot reproduce the exact same millisecond-level decision times and bet combinations. Every round creates a new perturbation that is fused with system randomness before the next draw.
Each player's decision time, bet amount, and action order are recorded in real time.
All actions from the previous round are canonicalized into one unique public digest.
A fresh secret random value is created at draw time and enters the algorithm together with the event digest.
The two random factors are fused, then an unbiased mapping selects a deck position. Only then does the next card exist.