How to create an online casino game: Provably fair

Dhairya VermaDhairya Verma
1 min read

Ever wondered how online casinos ensure their games are fair? You might assume the outcomes are completely random, like using a simple Math.random() function. However, that’s not entirely accurate. If the outcomes were purely random, how could users be confident that the casino hasn’t rigged or manipulated the results?

To address this, casinos employ a clever system to achieve both fairness and randomness using seeds.

Unlike pure randomness, a random number generator (RNG) that relies on seed will always produce the same output for the same seed. This property makes it possible to replicate and verify the outcomes, which is essential for building trust with users.

package main

import (
    "fmt"
    "math/rand"
)

func main() {
    seed := int64(12345) // Fixed seed for demonstration
    rand.Seed(seed)
    fmt.Println("Random Number:", rand.Intn(100)) // Same output for the same seed
}

This seed is hidden from the user initially as with leaked seed, the user can predict all the outcomes. Only after the user changes the seed, the previous seed is revealed, and then the user can verify all the bets.

This method of using seeds is at the heart of what’s called provably fair gaming.

0
Subscribe to my newsletter

Read articles from Dhairya Verma directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Dhairya Verma
Dhairya Verma

Hey there 👋 I'm Dhairya, a backend developer. With a solid background spanning 5 years, my achievement includes scaling an app to 3M users.