PureTools

Generador de Numeros Aleatorios: Rangos, Distribuciones y Casos de Uso

PureTools Team· 6 min de lectura
Generador de Numeros Aleatorios: Rangos, Distribuciones y Casos de Uso

Los Numeros Aleatorios Estan en Todos Lados

Los numeros aleatorios alimentan todo, desde juegos y simulaciones hasta criptografia e investigacion cientifica. Pero no todos son creados iguales - entender la diferencia importa.

Pseudo-Aleatorio vs Verdaderamente Aleatorio

TipoFuenteVelocidadCaso de Uso
Pseudo-aleatorio (PRNG)Algoritmo matematicoMuy rapidoJuegos, simulaciones, pruebas
Criptografico (CSPRNG)Pool de entropia del SORapidoSeguridad, tokens, contrasenas
Verdaderamente aleatorio (TRNG)Fenomenos fisicosLentoLoterias, investigacion cientifica

En JavaScript

// Pseudo-aleatorio (NO criptograficamente seguro)
Math.random() // 0 a 1
Math.floor(Math.random() * 100) + 1 // 1 a 100

// Criptograficamente seguro
const array = new Uint32Array(1);
crypto.getRandomValues(array);
const seguro = array[0]; // 0 a 4,294,967,295

// Entero aleatorio en rango (seguro)
function enteroAleatorio(min, max) {
  const rango = max - min + 1;
  const array = new Uint32Array(1);
  crypto.getRandomValues(array);
  return min + (array[0] % rango);
}

Casos de Uso Comunes

  • Juegos: Lanzamiento de dados, barajeo de cartas, generacion procedural
  • Seguridad: Generacion de contrasenas, tokens de sesion, nonces
  • Pruebas: Fuzz testing, datos de prueba aleatorios, simulaciones Monte Carlo
  • Estadistica: Muestreo, bootstrapping, experimentos aleatorizados
  • Arte: Arte generativa, texturas procedurales, musica

Las Distribuciones Importan

No todo lo aleatorio debe ser uniforme. Diferentes distribuciones sirven diferentes propositos:

  • Uniforme: Probabilidad igual en el rango (dados, loteria)
  • Normal (Gaussiana): Curva de campana, mayoria de valores cerca de la media (alturas, calificaciones)
  • Exponencial: Modela tiempo entre eventos (solicitudes de servidor, decaimiento radioactivo)
  • Poisson: Conteo de eventos en un periodo (llamadas por hora, visitas al sitio)

El Problema del Sesgo

Usar modulo (%) para restringir un numero aleatorio a un rango introduce sesgo cuando el rango no divide uniformemente el rango de origen. Para aplicaciones criticas, usa muestreo por rechazo.

Genera numeros aleatorios con rangos personalizados usando el Generador de Numeros Aleatorios de PureTools. Define valores minimo y maximo, elige cuantos numeros generar y obtiene resultados criptograficamente seguros al instante.