Existem 3 tipos de geradores de números aleatórios:
São feitos a partir de processos físicos e não é possível recriar.
Por exemplo: ao jogar uma moeda pra cima, variação de ruídos do ar.
São feitos a partir de uma semente (um número aleatório escolhido para poder gerar o número aleatório).
Depois do número ser gerado ele é executado dentro de uma função várias vezes, cada vez que ele for executado nessa função ele perde um pouco de sua aleatoriedade e começa a ser determinístico
Método de quadrados médios é um desses exemplos, nele a primeira semente é multiplicada por si mesma gerando assim uma nova semente então o número do meio é retirado e se torna a nova semente, assim se repitindo o processo até atingir o tamanho da semente desejada.
Exemplo:
Semente1 = 121
Semente1 = Semente1 * Semente1 = 14641
Semente2 = 464
São números pseudo-aleatórios, mas os números são imprevisíveis.
Definição informal
Dado n bits de saída de Si até Si+n-1 é computacinalmente impossível construir Sn