Saltar al contenido principal
CalcMax

Generador de números aleatorios

Intervalo: 1 – 200

Intervalo: 0 – 4.294.967.295

Resultado

63, 1, 53, 99, 97

Números extraídos

Valores posibles
100
Probabilidad de que se repita algún número
9,65 %

Un generador de números aleatorios convierte un punto de partida en una lista de números enteros al azar dentro de un rango que tú fijas. Este toma un rango, cuántos números quieres y la semilla aleatoria desde la que arrancar, y devuelve exactamente esa cantidad de enteros: los mismos cada vez que usas la misma semilla, que es lo que hace que una lista se pueda entregar a otra persona y esa persona pueda reproducirla. El interruptor de permitir repetidos decide si un valor puede salir más de una vez: con él activado los números son extracciones independientes, que es el modelo honesto de un dado o de un bombeo de lotería; con él desactivado el resultado pasa a ser una selección y ningún valor puede repetirse. El panel informa además de cuántos valores distintos contiene el rango y de qué probabilidad habría habido de que algún número se repitiera si se hubieran permitido las repeticiones.

Fórmula

siguiente = (estado + 0x6D2B79F5) mezclado con multiplicaciones y desplazamientos → valor = mínimo + ⌊siguiente × (máximo − mínimo + 1)⌋

seed
El estado inicial del generador, cualquier número entero de 0 a 4294967295. No es una fuente de aleatoriedad por sí mismo, es el punto en el que empieza la secuencia, y por eso exactamente la misma semilla da siempre la misma lista
state
El estado corriente, que se actualiza una vez por número. La actualización mezcla el estado con una constante fija y unos cuantos pasos de multiplicación y desplazamiento; la mezcla es lo que hace que valores consecutivos no guarden relación aparente, y es el paso que se rompería primero si se simplificara
minimum, maximum
Los dos extremos del rango, ambos incluidos. La anchura del rango es aquello por lo que se escala la fracción, así que todos los números enteros del rango tienen la misma probabilidad
⌊ ⌋
Redondeo hacia abajo. El generador produce una fracción en [0, 1) y la función suelo la convierte en uno de los números enteros del rango
count
Cuántos números hay que producir, hasta 200. Con los repetidos desactivados no puede superar la anchura del rango, porque una selección no puede ser más larga que el conjunto del que sale

Úsala cuando necesites una lista y no un solo número: una muestra para comprobar a mano, un conjunto de casos de prueba que tenga que ser el mismo en cada ejecución, un sorteo que quieras poder repetir delante de un público o datos de relleno. Poder fijar la semilla es la razón de preferir esto a la función aleatoria que traiga tu lenguaje: una semilla convierte un resultado puntual en algo que se puede compartir, volver a comprobar y discutir. Recurre a ella con los repetidos desactivados cuando un mismo elemento no deba aparecer dos veces, que es la forma de un sorteo, de una muestra aleatoria de una lista y de un orden mezclado. Hay dos cosas para las que no sirve: no es una fuente de números impredecibles, así que nada que tenga que ser imposible de adivinar tiene cabida aquí, y no sustituye a una muestra aleatoria estadística de una población real, porque no sabe nada de la población, solo del rango.

Ejemplos resueltos

  1. Cinco números del 1 al 100, y otra vez los mismos cinco

    1. El rango de 1 a 100 contiene 100 valores distintos, así que cada extracción es una de 100
    2. La semilla 1 fija el estado inicial; cada uno de los cinco números lo actualiza una vez
    3. Redondear cada fracción hacia abajo dentro de 1 a 100 da 63, 1, 53, 99 y 97 en ese orden

    Esos cinco números no son una casualidad ni una tabla guardada: son lo que produce la semilla 1, y volver a escribir 1 en el campo de la semilla los reproduce exactamente. Fíjate en que el 9,65 % es una afirmación sobre el rango y la cantidad, no sobre esta extracción concreta: con cinco extracciones de cien valores hay algo menos de una probabilidad entre diez de que dos coincidan, coincidan o no dos de esta lista. Cambiar la semilla por 7 da una lista por completo distinta y deja ese porcentaje intacto, que es la manera más clara de ver qué parte del panel es azar y qué parte es aritmética.

  2. Seis números del 1 al 49 con las repeticiones prohibidas

    1. El conjunto son 49 valores y se extraen seis sin reemplazo
    2. Cada número nuevo se vuelve a extraer hasta que sea uno que el conjunto no haya dado ya, y por eso un valor no puede aparecer dos veces
    3. Leyendo la lista en el orden en que se ha producido salen 23, 16, 33, 31, 8 y 11

    Desactivar los repetidos no cambia el 27,26 %, y eso es justo lo que justifica informarlo junto a este ejemplo: es la probabilidad de que seis extracciones de 49 hubieran chocado si se hubieran permitido repeticiones, la misma tanto si las prohíbes como si no. Es también lo que hace cara una extracción sin repetidos cuando la cantidad es grande: con 49 valores y 6 extracciones, más de un cuarto de las extracciones sin restricción repetiría algo, y con 23 extracciones de 365 la cifra pasa de la mitad. Los números se quedan en el orden en que se han extraído y no se ordenan, para que la misma semilla y los mismos ajustes reproduzcan siempre la misma lista.

  3. Un rango con un solo valor

    1. El rango contiene exactamente un valor, así que todas las extracciones son ese valor
    2. La probabilidad de repetición es la de que cuatro extracciones choquen, y con un conjunto de un solo elemento tienen que chocar
    3. El resultado es 7, 7, 7 y 7

    Este es el extremo en el que el generador de números aleatorios deja de ser aleatorio y pasa a ser una constante, y conviene tenerlo presente porque es el único caso en el que el resultado es por completo predecible antes de pulsar nada. Marca además el límite del modo sin repetidos: con ese mismo rango, pedir dos números sin repetidos es una petición imposible y no una lista corta, y la página lo dice en lugar de devolver un solo número sin avisar.

Limitaciones

Estos números no sirven para nada que tenga que ser imposible de adivinar. El generador es una secuencia aritmética pequeña, rápida y con semilla, de la clase que llevan incorporada los programas corrientes: dada la semilla, cualquiera puede reproducir la lista entera, y a partir de unos cuantos valores de ella se pueden deducir los demás. Eso lo descarta para contraseñas, claves, tokens, códigos de un solo uso, loterías con dinero de por medio y cualquier otra cosa en la que un participante no deba poder predecir ni reconstruir la extracción. Para esos casos, la única respuesta correcta es una fuente aleatoria criptográfica. La probabilidad de repetición tampoco es una afirmación sobre la lista que estás viendo: es la probabilidad de que una extracción de ese tamaño de ese conjunto contuviera al menos una coincidencia, calculada como si las extracciones fueran independientes y uniformes, y se informa tanto si se permitieron repeticiones como si no. Su significado práctico es el que pilla desprevenido a la gente: una coincidencia necesita solo alrededor de la raíz cuadrada del tamaño del conjunto para volverse probable, así que 23 extracciones de 365 fechas ya superan la mitad de probabilidad. Y la cantidad está limitada a 200 por ejecución, con las repeticiones imposibles en cuanto la cantidad supera el tamaño del conjunto.

Preguntas frecuentes

¿Son seguros estos números para una lotería, una contraseña o un token de seguridad?
No. Este generador es una secuencia aritmética pequeña y con semilla, de la clase que usan los programas corrientes, no una criptográfica: a partir de la semilla se puede reproducir la lista entera, y a partir de unos cuantos de sus valores se pueden deducir los demás. Todo aquello en lo que un participante no deba poder predecir ni reconstruir el resultado —loterías con dinero de por medio, contraseñas, claves, tokens, códigos de un solo uso— necesita una fuente aleatoria criptográfica. Para sorteos, muestras, juegos y datos de prueba, donde la reproducibilidad es una ventaja y no una fuga, es la herramienta adecuada.
¿Para qué sirve la semilla y por qué me salen siempre los mismos números?
La semilla es el estado desde el que arranca la secuencia, así que la misma semilla produce siempre la misma lista. Es deliberado: hace que el resultado sea reproducible, que es lo que quieres cuando tienes que entregar una muestra a otra persona, repetir un sorteo delante de un público o evitar que un caso de prueba se desvíe. Cambia la semilla y obtendrás otra lista con los mismos ajustes. Si quieres que los números sean distintos cada vez, cambia la semilla entre ejecuciones: el valor que escribes queda registrado con el resultado, así que una lista que te haya gustado siempre se puede recuperar.
¿Por qué pueden aparecer repetidos si están permitidos?
Porque cada extracción es independiente. Con los repetidos permitidos, cada posición elige uno de los valores del rango sin atender a lo que hayan elegido las otras, que es el modelo honesto de una tirada de dado o de un bombeo de lotería que devuelve la bola a su sitio. La probabilidad de repetición del panel es exactamente la probabilidad de que al menos una pareja coincida: alrededor del 9,65 % para cinco extracciones de cien valores, y por encima del 50 % en cuanto extraes 23 valores de 365. Desactiva los repetidos cuando un mismo valor no deba aparecer dos veces, que es la forma de un sorteo, de una muestra de una lista o de un orden mezclado.
¿La probabilidad de repetición baja si prohíbo los repetidos?
No, y el panel sigue mostrando el mismo número a propósito. Responde a la pregunta que en realidad te haces al mover ese interruptor: qué probabilidad habría habido de una coincidencia si se hubieran permitido las repeticiones. Para seis números del 1 al 49 es del 27,26 %, así que prohibir los repetidos elimina un riesgo real y no uno teórico. También explica por qué una extracción sin repetidos se vuelve lenta y acaba siendo imposible con cantidades grandes: en cuanto la cantidad supera el número de valores del rango no hay ninguna respuesta válida, y la página lo informa en lugar de devolver una lista más corta.
¿Cuántos números puedo generar de una vez y en qué rango?
Hasta 200 números por ejecución, y los extremos del rango tienen que ser números enteros con el mínimo no mayor que el máximo. Los valores en sí pueden ser negativos, así que un rango de −50 a 50 es válido. Los extremos no enteros se rechazan en lugar de redondearse: con los repetidos prohibidos, extraer de un rango que contuviera fracciones haría de la regla de no repetir una condición vacía, y una lista que parece plausible mientras ignora en silencio su propio ajuste es peor que un mensaje de error.
¿Los números salen ordenados?
No: se imprimen en el orden en que se han extraído, y ese orden forma parte del resultado. Ordenarlos tiraría información que la misma semilla debe reproducir, y el orden importa para todo aquello en lo que la posición signifique algo, como repartir un orden mezclado o dar una mano de cartas. Si quieres una selección ordenada, ordena la lista tú mismo después de copiarla; la extracción se mantiene fiel a la secuencia que ha producido la semilla.

Referencias

Calculadoras relacionadas