Métodos e algoritmos que tornam possíveis a geração de números randômicos

A necessidade de utilizar números aleatórios está por toda parte na informática. Seja no resultado da loteria, no embaralhamento de cartas no mundo online, na tecnologia por trás das senhas ou até mesmo na segurança de diversos aplicativos, se trata de um segmento importante nos dias atuais e que é muito estudado por diversos especialistas no assunto.

Entender como funcionam os geradores de números aleatórios vai além de explicar apenas um só método — visto que vários podem ser utilizados para chegar a um determinado número que tenha por si só uma natureza randômica.

Para tal, é possível utilizar geradores totalmente computadorizados, métodos físicos ou que são pautados pela mecânica quântica.

Métodos físicos e quânticos

Existem geradores que são naturalmente baseados na natureza probabilística dos processos físicos aleatórios, como ruído térmico, ruído de disparo, emissão ou detecção de fóton e outros.

Muitos dos geradores baseados em processos físicos tendem a ter uma precisão muito grande em seus resultados de números aleatórios, no entanto, não é um método intrinsecamente uniforme e pode haver interferências naturais que atrapalham no resultado final. Além disso, eles estão muito suscetíveis a desgaste e envelhecimento dos componentes.

Em 2010, uma nova descoberta no ramo dos geradores quânticos foi anunciada. Divulgada em uma edição da revista Nature, os pesquisadores da Joint Quantum Institute (JQI), da Universidade estadunidense de Maryland, atingiram resultados impressionantes.

Os pesquisadores pegaram como base a desigualdade de Bell, um método revolucionário criado em 1964 para testar a hipótese central da mecânica quântica. Então, os profissionais da JQI trabalharam em cima do teorema e chegaram a um resultado revolucionador.

“Nós podemos, pela primeira vez, certificar que uma aleatoriedade verdadeira foi produzida em um experimento sem um modelo detalhado do dispositivo”, disse os pesquisadores.

No entanto, os resultados obtidos não podem ser naturalmente utilizados na rotina, visto que o método utilizado pelos pesquisadores da JQI é muito lento. “A taxa de geração de bits aleatórios é extremamente lenta,” diz o Dr. Christopher Monroe, que liderou os experimentos. “Mas esperamos acelerá-la em várias ordens de magnitude nos próximos anos conforme consigamos entrelaçar os átomos de forma mais eficiente”, completou.

Métodos computadorizados

Assim como é comum com o avanço da tecnologia, a modernização e a computadorização chegou há tempos nos métodos de geradores randômicos e são utilizados em muitos casos.

O gerador randômico de números, também conhecido pela sigla RNG, é um dos mais populares e precisos atualmente. Ele é um sistema, aparelho ou módulo que gera uma sequência de números que não são relacionados entre si. Dessa maneira, isso é altamente aplicado em sites de diversos segmentos, como no setor do poker online — presente em sites como o do PokerStars, por exemplo.

São utilizados os geradores pseudoaletórios para sites e plataformas que não necessariamente necessitam de uma precisão basicamente completa da aleatoriedade.

Conhecido pela sigla PRNG, os geradores pseudoaletórios é um algoritmo que gera uma sequência de números quase totalmente aleatórios — eles não são 100% eficazes e seu sistema é baseado em um valor inicial, chamado de semente. Os algoritmos podem criar longas sequências de números randômicos, mas eventualmente tais sequências acabam se repetindo.

Geralmente o PRNG é utilizado em sites como sorteio para vencedor de promoção ou para rapidamente determinar um número randômico.

Utilizando na prática

Na grande maioria dos casos o algoritmo PRNG é o suficiente para suprir a necessidade de números randômicos para objetivos diferentes na internet. No entanto, caso seja necessário algo ainda mais aleatório e que seja mais preciso, utilizar a tecnologia do RNG é o adequado.

Para fins básicos, não é preciso ser um expert para obter números aleatórios no seu próprio computador. A linguagem Java, por exemplo, disponibiliza funcionalidades para gerar números randômicos. Com a classe denominada de “Random”, é possível explorar isso seguindo alguns passos não muito complexos.

Já no Linux é possível chegar aos números aleatórios de maneira muito simples, visto que é necessário apenas um comando que gera automaticamente um número randômico.  

Assim como na maioria dos segmentos da informática, a tecnologia por trás dos números randômicos ainda não foi totalmente desvendada e explorada e segue em evolução. A descoberta recente pelos pesquisadores da JQI mostra isso.