Lançar Moeda
crypto.getRandomValues · 50/50 · no navegador
crypto.getRandomValues — o RNG criptograficamente seguro do navegador — antes de a moeda ser lançada, então o lançamento é puramente cosmético e o resultado é provavelmente 50 / 50. Toque o botão, mude os rótulos, ou lance um milhar de uma vez em lote.Por que o resultado é justo
O resultado de uma moeda aqui é um bit retirado de crypto.getRandomValues: a página lê um inteiro de 32 bits sem sinal novo e trata seu bit baixo como «cara» (0) ou «coroa» (1). Em todo navegador moderno esse inteiro é proveniente do pool de entropia criptográfico do sistema operacional — o mesmo usado para gerar chaves de sessão TLS. Como cada bit é independente e uniformemente distribuído, cada lançamento é um verdadeiro 50 / 50 sem memória dos resultados anteriores.
A animação é cosmética
A decisão cara/coroa é feita antes de a moeda começar a girar — a quantidade de rotação e a orientação final são escolhidas para que a moeda pouse com a face predeterminada para cima. Então a animação é divertida de assistir mas não pode afetar o resultado, e o resultado não pode ser enviesado por qualquer interação com o lançamento (nenhum exploit esperto de batida de botão).
Modo lote e a lei dos grandes números
Clique ×100 ou ×1000 e um lote inteiro é lançado de uma vez. A página anima uma única moeda representativa (mostrando o último resultado) e renderiza o resto como pequenas fichas abaixo. Estatísticas agregadas (total, % cara, sequência mais longa) atualizam em toda a sua sessão, então você pode ver a fatia de cara convergir para 50% conforme N cresce, e ver a sequência improvável ocasional — sequências de 10+ do mesmo lado acontecem e não são um bug.
Personalizando os rótulos
Os dois campos de texto controlam o que aparece nas faces cara e coroa. Use-os para decisões binárias onde «cara/coroa» não é o enquadramento certo — Sim / Não, Ficar / Ir, Burrito / Pizza. Rótulos longos são reduzidos automaticamente para caber na face. O painel de estatísticas se rerrotula para combinar.
Privacidade
Nenhum lançamento jamais é enviado da página. O histórico e estatísticas vivem apenas na memória desta aba e desaparecem quando você fecha (não há persistência localStorage aqui). A página não faz requisições de rede após o carregamento estático inicial, e não há scripts de analítica.