Choose your dice and roll. Each throw is generated server-side with a cryptographic random source — no roll depends on the one before.
Fair dice, honestly rolled
Each die is an independent uniform draw: every face has exactly the same chance on every throw, and no streak changes the next roll. The expected total is the number of dice times the average face, (sides + 1) / 2 — for two six-sided dice, 7.
That independence is the same property certified RNGs bring to casino games — and the same reason no betting pattern can outguess the next outcome, here or at a table.
Methodology
Each die is an independent draw from a uniform distribution via PHP's random_int (CSPRNG). The expected total is dice × (sides + 1) / 2 — the same independence property certified casino RNGs are audited for.