Random Number Generator

Random Number Generator

Free client-side developer and designer tool.

Padrão de Formatação Numérica
Tamanho da Amostra (N)0
Média Aritmética (x̄)0.00
Valor-p de Uniformidadep = 1
Densidade de Entropia (Shannon)0 bits
Configurações do Gerador
CSPRNG
Limite Mínimo (Mín)
Limite Máximo (Máx)
10
Sorteio sem Repetição (Apenas Únicos)Garante que cada número seja sorteado no máximo uma vez (amostragem sem reposição).
Casas DecimaisDefina a quantidade de casas decimais para valores de ponto flutuante.
Sequência de Números Gerados(0 Observações Amostrais)
Referência técnica e guia de arquitetura

Gerador de Números Aleatórios & RNG — Guia de referência

Gerador de números aleatórios criptográfico de alta performance e com semente. Gere inteiros, decimais, distribuições gaussianas e sorteios com telemetria qui-quadrado em tempo real e exportação instantânea.

Gerador de Números Aleatórios & RNG — Guia de referência — Arquitetura em memória do lado do cliente e fluxo de dados
Gerador de Números Aleatórios & RNG — Guia de referência — Arquitetura em memória do lado do cliente e fluxo de dados

Parâmetros-chave e controles

Limites do Intervalo (Mín e Máx)inteiro | decimal

Intervalo fechado inclusivo [a, b] que delimita todos os valores gerados. Suporta inteiros seguros de 64 bits de até ±9.007.199.254.740.991.

Padrão: 1 a 100
Tamanho da Amostra (Contagem N)inteiro

Quantidade total de números aleatórios gerados por lote de execução. Suporta de 1 a 10.000 itens sem congelamento da interface na thread principal.

Padrão: 1
Mecanismo e Fonte de EntropiaCSPRNG | Mulberry32 PRNG

Alterna entre entropia de hardware criptograficamente imprevisível (window.crypto) e pseudoaleatoriedade determinística reproduzível por semente.

Padrão: CSPRNG (Web Crypto)
Algoritmo de DistribuiçãoUniforme | Gaussiana | Exponencial

Controla a densidade de probabilidade: Uniforme atribui probabilidades iguais; Gaussiana utiliza a transformada polar de Box-Muller; Exponencial modela intervalos de chegada de Poisson.

Padrão: Uniforme
Modo de Amostragem e ReposiçãoPermitir Repetições | Únicos (Sem Reposição)

Quando o modo de valores únicos está ativado, a amostragem de reservatório parcial de Fisher-Yates garante itens sem duplicação, exigindo Contagem <= Máx - Mín + 1.

Padrão: Permitir Repetições

Dicas profissionais e melhores práticas

Viés de Módulo e a Falha das Operações de Resto na Aleatoriedade Real

Implementações básicas costumam calcular intervalos aleatórios usando Math.floor(rng() * (max - min + 1)) ou o operador de resto/módulo bruto (random % range). Quando a faixa de entropia não é um múltiplo inteiro exato do intervalo desejado, os números menores recebem uma probabilidade desproporcionalmente maior (viés de módulo ou modulo bias). Esta ferramenta implementa amostragem por rejeição sobre inteiros sem sinal de 32 bits (uint32), garantindo rigor matemático e probabilidade perfeitamente uniforme para cada valor.

Previsibilidade do Math.random() vs. Entropia de Hardware do CSPRNG

O V8 e os motores JavaScript modernos implementam o Math.random() utilizando xorshift128+, um algoritmo otimizado para velocidade e não para segurança. Após observar apenas 2 a 3 saídas consecutivas de floats de 64 bits, o estado interno completo de 128 bits pode ser reconstruído com solvers SMT (como o Z3), permitindo prever com exatidão todos os valores subsequentes. Utilize sempre o mecanismo CSPRNG para sorteios, rifas, geração de tokens, criptografia e loterias.

Transformada de Box-Muller para Amostragem Gaussiana Precisa

A geração contínua de distribuições em curva de sino exige transformar pares de variáveis aleatórias uniformes e independentes U1 e U2 no intervalo (0, 1) em desvios normais padrão: Z0 = sqrt(-2 * ln(U1)) * cos(2 * pi * U2). Nosso mecanismo processa essa transformada com precisão dupla e a escala por μ + Z0 * σ, dispensando a aproximação rudimentar de soma de 12 dados baseada no Teorema do Limite Central.

Armadilhas comuns e solução de problemas

⚠️A geração de valores únicos exibe erro: O tamanho da amostra excede o total de números disponíveis no intervalo

Quando o modo de valores únicos (amostragem sem reposição) está ativado, o Princípio da Casa dos Pombos determina que a contagem N não pode superar (Máx - Mín + 1). Por exemplo, selecionar 60 números exclusivos entre 1 e 50 é matematicamente impossível. Para corrigir, amplie o intervalo [Mín, Máx], reduza a quantidade solicitada ou desative a opção de valores únicos para permitir repetições.

⚠️O teste de Aderência do Qui-Quadrado aponta alta variância ou desvio no p-valor em lotes de amostra pequenos

O teste de Qui-Quadrado de Pearson só segue assintoticamente uma distribuição qui-quadrado quando a frequência esperada em cada classe satisfaz E_i >= 5. Ao testar lotes reduzidos (por exemplo, N = 20 distribuídos em 10 classes, onde E_i = 2), a variância aleatória de Poisson produzirá naturalmente p-valores extremos. Para uma validação estatística rigorosa de uniformidade, gere uma amostra de pelo menos 500 a 1.000 números.

Perguntas frequentes (FAQ)

Como gerar números aleatórios sem repetição de forma verdadeiramente aleatória?▼

Para gerar números aleatórios sem repetições, o gerador emprega amostragem sem reposição por meio do algoritmo de embaralhamento de Fisher-Yates. A partir de um conjunto de valores do Mínimo ao Máximo, o algoritmo seleciona iterativamente um índice aleatório criptograficamente seguro e o troca com a posição atual, extraindo N valores exclusivos em tempo linear O(N) e assegurando que todas as permutações tenham exatamente a mesma probabilidade matemática.

Qual é a diferença entre um CSPRNG e um gerador pseudoaleatório comum?▼

Um Gerador de Números Pseudoaleatórios (PRNG) utiliza uma fórmula matemática de recorrência a partir de uma semente (seed) inicial. Se a semente for conhecida ou descoberta, toda a sequência torna-se 100% determinística e previsível. Já um PRNG Criptograficamente Seguro (CSPRNG), como o window.crypto.getRandomValues, coleta entropia física imprevisível de interrupções de hardware e ruído térmico do sistema operacional, sendo aprovado no teste do próximo bit (next-bit test), onde nenhum algoritmo em tempo polinomial consegue prever os bits seguintes.

Como gerar números aleatórios que seguem uma distribuição normal ou gaussiana?▼

Nosso gerador aplica a transformada de Box-Muller para mapear dois valores aleatórios uniformes e independentes em duas variáveis normais padrão, com média 0 e variância 1. O resultado é então escalado pela equação X = μ + Z * σ, permitindo modelar fenômenos reais como erros de medição, distribuições de QI, oscilações financeiras, tempos de reação e métricas biométricas.

Como o teste de qui-quadrado comprova que os números estão uniformemente distribuídos?▼

O teste de Aderência do Qui-Quadrado divide o intervalo [Mín, Máx] em k classes iguais e calcula a estatística χ² = Σ((Observado - Esperado)² / Esperado), onde Esperado = N / k. Ao comparar o χ² obtido com a distribuição qui-quadrado para k - 1 graus de liberdade, a ferramenta calcula o p-valor: um valor entre 0,05 e 0,95 confirma estatisticamente que a distribuição observada é consistente com a aleatoriedade teórica pura, sem vícios de amostragem.

Por que o Math.random() do JavaScript não é seguro para criptografia ou sorteios?▼

O Math.random() nativo não é criptograficamente seguro nem permite definição de semente nos navegadores convencionais. Seu algoritmo interno (xorshift128+ no V8/Chrome e PCG no WebKit/Safari) possui um espaço de estados reduzido que pode ser totalmente deduzido por engenharia reversa após a observação de uma pequena sequência de números, tornando-o vulnerável a fraudes em sorteios, jogos, criação de chaves e operações criptográficas.

Ferramentas e utilitários relacionados

Todas as ferramentas →