Una computadora se define como una máquina electrónica digital programable, es decir, que se puede programar para ejecutar comandos, ya sea procesar grandes cantidades de información, realizar cálculos o cualquier otra tarea que se le solicite. Desde su concepción, mucho antes de que se popularizase el término, la idea es que estas máquinas sean una “inteligencia artificial” similar a la de los humanos, capaz de llevar a cabo las mismas operaciones, pero de forma más eficiente.
Sin embargo, esta definición presenta un gran problema: ¿qué pasa con la improvisación? Los seres humanos, como fenómeno natural que somos, tenemos la capacidad de ser impredecibles; las computadoras, en principio, no lo son, ya que se programan con un fin específico. Pero ¿podemos programar a las computadoras para que sean impredecibles? ¿Para que no sepamos qué van a hacer? La respuesta es sí.
La “aleatoriedad” o el azar es un fenómeno que se produce en la Naturaleza y que lleva siglos estudiándose como parte de la rama matemática de la Probabilidad. Tradicionalmente, se ha tratado de “controlar” o establecer ciertos patrones dentro de la aleatoriedad, como se hace, por ejemplo, en meteorología. En cambio, en informática, donde se programa a las computadoras para que sean predecibles, el problema es el contrario: conseguir que no lo sean.
Para ello, se han desarrollado los generadores de números aleatorios o Random Number Generator (RNG), cuya misión es producir secuencias de números sin ningún orden establecido o que se pueda establecer.
Los RNG son algoritmos que, en ocasiones, se combinan con fenómenos naturales como pueden ser sonido ambiente, el reflejo de un rayo de sol o los movimientos de ratón del usuario de una computadora. Cuando se introducen estos fenómenos físicos azarosos en las secuencias aleatorias creadas por los algoritmos informáticos, hablamos de Hardware Random Number Generators, donde los resultados son todavía más impredecibles.
Los HRNG se consideran “verdaderos” RNG y se distinguen de los generadores de “pseudo números aleatorios”, que solo producen secuencias aparentemente aleatorias. Aun así, hoy en día, incluso estos pseudo RNG son algoritmos tan complejos y sofisticados, que es prácticamente imposible adivinar la secuencia que van a producir.
Esta característica, la aleatoriedad total de los resultados, es fundamental en muchos ámbitos del entorno digital. Estos son algunos de ellos.
Cuando hablamos de secuencias de números aleatorios, hay que tener en cuenta que estos números se traducen en acciones. Por lo tanto, para reproducir acciones aleatorias como puede ser el lanzamiento de unos dados o el barajado y reparto de cartas que se realiza en las partidas de poker online en todas sus modalidades, es necesario utilizar RNG.
Quien dice repartir las cartas, dice hacer girar una ruleta o accionar la palanca virtual de una tragamonedas. Los RNG son una piedra angular del éxito del casino online; no en vano, es en esta industria donde llevan más tiempo invirtiendo en su desarrollo y en garantizar la aleatoriedad de los resultados, algo que evalúan auditores externos a las plataformas de poker o casino.
Los Non-Playable Characters (NPC) o personajes no jugables se refieren a todos aquellos personajes que aparecen en los videojuegos, pero que no controlan los jugadores.
Evidentemente, si supiéramos cuándo va a aparecer determinado personaje o qué va a hacer, el juego no tendría demasiada gracia. Los gamers más veteranos seguro que han vivido la experiencia de jugar tanto a un videojuego, que ya sabían qué iba a suceder. En la actualidad, sobre todo desde el auge de los eSports, los RNG se encargan de que esto no vuelva a pasar.
Estos algoritmos de aleatoriedad forman parte de los NPC que, junto con otras técnicas como el autoaprendizaje, hacen que cada partida sea distinta incluso si nosotros, como jugadores, intentamos hacer siempre lo mismo.
No solo el sector del juego online se ha preocupado por desarrollar sistemas de RNG confiables, seguros y eficientes. Estos sistemas son la base de las técnicas de encriptación y ciberseguridad.
Los RNG son un elemento clave para luchar contra el phishing y otros ataques a la seguridad en la red. La generación de contraseñas y otras técnicas de protección de datos en internet tienen su base en la imprevisibilidad que ofrecen los resultados de estos generadores.
Uno de los usos de los RNG menos conocidos, pero igualmente importante, es su inclusión en investigaciones científicas de todo tipo. Muchos fenómenos que se estudian, meteorológicos o biológicos, por ejemplo, tienen un alto grado de aleatoriedad asociado; por ello, para poder estudiarlos con propiedad, es necesario incluir este aspecto en los estudios.
Los RNG se utilizan para hacer simulaciones de distintos fenómenos, para que se comporten de manera similar en las recreaciones que estudian los científicos y así poder obtener conclusiones más acertadas sobre su observación.