Geração de números aleatórios
A geração de números aleatórios (RNG) é um processo que, por meio de um dispositivo, gera uma sequência de números ou símbolos que não podem ser razoavelmente previstos melhor do que por acaso. Os geradores de números aleatórios podem ser geradores de números aleatórios de hardware verdadeiramente aleatórios (HRNGS), que geram números aleatórios como uma função do valor atual de algum atributo do ambiente físico que está mudando constantemente de uma maneira que é praticamente impossível de modelar, ou número pseudo-aleatório geradores (PRNGS), que geram números que parecem aleatórios, mas são realmente determinísticos e podem ser reproduzidos se o estado do PRNG for conhecido.
Várias aplicações da aleatoriedade levaram ao desenvolvimento de vários métodos diferentes para gerar dados aleatórios, alguns dos quais existiram desde os tempos antigos, entre cujas fileiras estão conhecidos exemplos "clássicos", incluindo o lançamento de dados, lançamento de moedas, o embaralhamento de cartas de jogar, o uso de talos de mil-folhas (para adivinhação) no I Ching, além de inúmeras outras técnicas. Devido à natureza mecânica dessas técnicas, gerar grandes quantidades de números suficientemente aleatórios (importante nas estatísticas) exigia muito trabalho e tempo. Assim, os resultados às vezes eram coletados e distribuídos como tabelas de números aleatórios.
Existem vários métodos computacionais para geração de números pseudo-aleatórios. Todos ficam aquém do objetivo da verdadeira aleatoriedade, embora possam cumprir, com sucesso variável, alguns dos testes estatísticos de aleatoriedade destinados a medir o quão imprevisíveis são seus resultados (isto é, em que grau seus padrões são discerníveis).
Fonte: Wikipédia