Results in our gem games come from a seed generated and signed by Random.org, an independent randomness service. Each seed has a serial number and a Random.org signature, so you can check that it came from Random.org and recompute your result with the formula below. Coins games use our own random seeds.
On rare occasions when Random.org's servers are down, we generate our own seeds. These outages are rare and usually short, so it is unlikely you will play a game on a house seed. The Verify tool below shows which kind of seed your round used.
How a result is made
Random.org draws a seed
For each round we request a random string from Random.org. Random.org signs it and gives it a serial number, so the seed can be traced back to them.
The seed is tagged
The seed is joined with a tag for the game and round, for example -CASE-1. Cases, the upgrader, mines and plinko also add your client seed.
The formula gives the roll
The tagged string seeds the open-source chance.js library, which returns a number between 0 and 1. That number picks your item, the winner or the tile, as the formula shows.
The formula
Pick a game to see exactly how its result is calculated from the seed.
import chance from "chance";
const createChanceInt = async (chance: Chance.Chance) => {
return chance.floating({ min: 0, max: 1, fixed: 10 });
};
// The formula we use to calculate the result
const generateCaseTickets = async (amount: number, clientSeed: string) => {
const { seed } = await generateRandomOrgSeed();
const values: number[] = [];
for await (const i of [...Array(amount).keys()]) {
const Chance = chance(seed + "-" + clientSeed + "-CASE-" + (i + 1));
values.push(await createChanceInt(Chance));
}
return values
};
Verify a round
Paste a Game ID from your game history. You get the Random.org seed, its signature and the rolls it produced. Check the signature on Random.org, then run the formula with the seed.

