Notação padrão de dados: 'XdY+Z' significa rolar X dados com Y lados cada e somar o modificador Z. Exemplos: 1d20+5 (um dado de vinte lados mais 5, rolagem de ataque comum em D&D), 3d6 (três dados de seis lados, atributo clássico de D&D, intervalo de 3 a 18 com média 10,5), 4d6 descartando o menor (quatro dados de seis lados, mantendo os três maiores - média ligeiramente mais alta, método alternativo comum em D&D). O rolador suporta as expressões padrão e mostra os resultados individuais de cada dado para que você possa verificar a soma.
Cada dado usa crypto.getRandomValues() para buscar bytes aleatórios do pool de entropia do sistema operacional, depois os mapeia para o intervalo do dado usando amostragem por rejeição para evitar viés de módulo. Isso garante que cada face tenha exatamente a mesma probabilidade - 1/6 para um d6, 1/20 para um d20, 1/100 para um d100. Vários dados são rolados em sequência, cada um independente, então a distribuição conjunta corresponde exatamente aos dados físicos.
As distribuições de probabilidade importam para o design de jogabilidade: 1d20 é uniforme (5% de chance por número), parece mais instável. 3d6 segue uma curva de sino (intervalo de soma de 3 a 18, média 10,5, a maioria das rolagens se concentra em torno de 10-11) - parece mais 'confiável', mas com extremos raros. Conhecer essas distribuições ajuda os jogadores a estimar as chances: rolar 15 ou mais em um d20 tem 30% de chance; rolar 15 ou mais em 3d6 tem apenas cerca de 9%. Ambos úteis para intenções diferentes de design de jogo.