• 18 de abril de 2024 02:11

Generar números aleatorios de manera virtual

La aleatoriedad, es decir, ser incapaces de predecir un resultado, es un fenómeno típico de la Naturaleza. Se habla de números aleatorios cuando un número tiene la misma probabilidad de aparecer que otro y cuando esta aparición (o no aparición) no tiene nada que ver con los números que hayan salido antes o los de después. Para entendernos, el ejemplo más habitual al hablar de números aleatorios es el del dado: en teoría, si no hay ningún truco, las seis caras tienen siempre las mismas probabilidades de salir.

Reproducir esta aleatoriedad (lo cual es una especie de contradicción) es tremendamente difícil, pero a menudo es necesario hacerlo. Esta necesidad es todavía mayor en un entorno virtual. Se necesitan crear secuencias de números que, al menos aparentemente, no tengan ninguna relación entre sí, se habla entonces de números “pseudoaleatorios”: se usan algoritmos para generar números que en apariencia son aleatorios aunque realmente no lo son.

Un sector con mucho peso en la era digital como es el del juego online o algo que preocupa tanto a todo el mundo como es la seguridad en Internet son áreas que no sólo se benefician de los números aleatorios sino que son su base fundamental. A menudo se piensa en las loterías o en los sorteos cuando se habla de la aleatoriedad pero también la criptografía necesita de ese factor de no ser predecible.

A nivel de usuario, se pueden simular números aleatorios a través de lenguajes de programación como Java o PHP e incluso puedes conseguirlo fácilmente con Excel. Sin embargo, si estamos hablando de negocios, y más si resulta que asegurar la aleatoriedad es la base de tu negocio, los sistemas para generar este tipo de secuencias se vuelven algo más sofisticados.

Generador de Números Aleatorios

Es muy habitual que en la terminología de cualquier casino virtual que se precie nos encontremos con el término Generador de Números Aleatorios (Random Number Generator), algunos incluso crean los suyos propios.

Si vas a participar en un juego de cartas quieres tener la certeza de que no se sepa qué te va a tocar, ni a ti ni a tus contrincantes, al menos no más de lo que se sabría si estuvieras jugando en el casino físico. Por eso la industria del juego se ha preocupado mucho por desarrollar sistemas que se acerquen lo máximo posible al juego en vivo.

Lo mismo ocurre con la criptología. Muchos de los pagos seguros que realizamos a través de Internet se basan en códigos elegidos de manera aleatoria que un cliente en concreto puede utilizar una única vez. Imagina que hubiera alguna posibilidad de poder anticipar o duplicar esos códigos…

Los RNG pueden ser simplemente software o también hardware, a menudo se trata de una combinación de los dos. Se utiliza, por ejemplo, el input de los movimientos de ratón que haga un usuario o el comportamiento de la corriente eléctrica para introducir elementos azarosos en una secuencia de los mencionados números pseudoaleatorios, de manera que la mezcla de las dos cosas cree, como mínimo, una mayor sensación de aleatoriedad y haga también mucho más difícil cualquier tipo de predicción.

Hay empresas, como por ejemplo Gaming Labs en el caso del gaming, cuya función es básicamente ver si existe cualquier tipo de patrón que se pueda deducir de una serie generada por un RNG. Como suele suceder en cualquier aspecto de la tecnología, es una especie de carrera entre el gato y el ratón. Los RNG tienen que ser cada vez más sofisticados; de hecho, la sensación de aleatoriedad creada por estos sistemas virtuales (o semi-virtuales) es tan alta, se acerca tanto a la real, que ya se habla simplemente de generadores de números aleatorios y no pseudoaleatorios.