🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Excel ALEATORIO y ALEATORIO.ENTRE — genera números aleatorios (y evita que cambien)

|

Excel ALEATORIO y ALEATORIO.ENTRE — genera números aleatorios (y evita que cambien)

En resumen — Excel trae dos generadores de números aleatorios integrados: ALEATORIO(), que devuelve un decimal aleatorio desde 0 hasta (pero sin llegar nunca a) 1, y ALEATORIO.ENTRE(inferior; superior), que devuelve un entero aleatorio entre inferior y superior con ambos extremos incluidos. El único dato que explica todas las sorpresas: las dos son volátiles —generan un número nuevo en cada edición, cada F9 y cada vez que abres el archivo—. «Mis números aleatorios no paran de cambiar» no es un fallo; es el diseño. Para fijarlos, Copiar → Pegado especial → Valores. Y ALEATORIO.ENTRE repite: tira dados, no reparte cartas.

=ALEATORIO()                        ' -> 0,4173...   decimal en [0, 1)
=ALEATORIO.ENTRE(1; 6)              ' -> 4           entero 1–6, ambos inclusive
=ALEATORIO.ENTRE(-10; 10)           ' -> -3          los límites negativos valen
=50 + (100 - 50) * ALEATORIO()      ' -> 73,9        decimal aleatorio en [50, 100)
=REDONDEAR(50 + 50*ALEATORIO(); 2)  ' -> 82,14       precio aleatorio con 2 decimales

Generar un número aleatorio en Excel es una línea. Lo que de verdad hace tropezar a la gente es controlarlo: evitar que el número se vuelva a sortear en cuanto tocas cualquier otra cosa, y saber que «enteros aleatorios» y «una muestra aleatoria» son dos trabajos distintos. Domina el modelo de volatilidad y el truco para congelar, y todo este rincón se vuelve predecible.

Lo que vas a aprender

  • El modelo mental: ALEATORIO y ALEATORIO.ENTRE son dados en vivo, no valores guardados
  • Por qué la volatilidad es la causa número uno del «mis números no paran de cambiar»
  • Cómo congelar los números aleatorios para que dejen de moverse (Pegado especial → Valores)
  • Por qué ALEATORIO.ENTRE repite: inclusivo y con reemplazo
  • El patrón =a+(b-a)*ALEATORIO() para decimales aleatorios en cualquier rango
  • Cuándo la aleatoriedad volátil ralentiza sin avisar un modelo grande — y qué hacer

El modelo mental: dados en vivo, no números guardados

La mayoría de las funciones de Excel buscan algo o calculan una respuesta fija: preguntas dos veces y obtienes lo mismo. Las funciones aleatorias son distintas: cada una es un dado que Excel vuelve a tirar cada vez que la hoja recalcula. La celda no guarda un número; guarda la instrucción de tirar uno ahora. Ese único cambio de mentalidad explica todo lo que viene a continuación.

ALEATORIO() no lleva argumentos y devuelve un decimal uniforme en el intervalo semiabierto [0, 1) —el cero es posible, el uno no—. ALEATORIO.ENTRE(inferior; superior) devuelve un número entero desde inferior hasta superior y —esta es la parte que la gente lee mal— incluye ambos límites, así que ALEATORIO.ENTRE(1; 6) de verdad puede devolver 1 o 6. El número de resultados posibles es superior − inferior + 1 (seis para un dado, no cinco).

Todo lo que construyas con aleatoriedad es uno de estos dos dados, remodelado: un dado decimal que estiras a cualquier rango, o un dado entero que tiras para IDs, datos de muestra o la lógica de un juego de dados.

La volatilidad es la trampa n.º 1: se recalculan en cada edición

Escribe =ALEATORIO.ENTRE(1; 100) en A1, luego escribe tu nombre en A2 y pulsa Intro. Mira A1: cambió. No lo tocaste, pero disparaste un recálculo, y una función volátil se vuelve a sortear en cada recálculo: cualquier edición en cualquier sitio, pulsar F9, ordenar, insertar una fila o simplemente reabrir el libro.

=ALEATORIO()             ' un número NUEVO en cada recálculo — cada edición, cada F9, cada apertura
=ALEATORIO.ENTRE(1;100)  ' igual: nunca se queda quieto mientras sea una fórmula viva

Esta es la raíz de casi toda queja sobre ALEATORIO/ALEATORIO.ENTRE: «mis asignaciones aleatorias se barajan solas», «los números cambiaron antes de que pudiera copiarlos», «mi muestra es distinta cada vez que abro el archivo». Nada de eso es una avería. Es un dado en vivo haciendo exactamente lo que hace un dado. La única pregunta es si lo quieres en vivo (un modelo de hipótesis que debe volver a sortearse a demanda) o congelado (una muestra que necesitas conservar). Esa decisión es la siguiente sección.

Cómo congelar los números aleatorios para que dejen de moverse

Cuando quieras conservar un conjunto de números aleatorios —ya están sorteados los ganadores, ya está elegida la muestra—, conviertes las fórmulas vivas en valores estáticos. Excel no tiene semilla aleatoria, así que congelar es la única manera de hacer los resultados reproducibles:

  1. Selecciona las celdas con =ALEATORIO() / =ALEATORIO.ENTRE(...).
  2. Copia (Ctrl+C).
  3. Pegado especial → Valores (Ctrl+Alt+V y luego V) sobre la misma selección.

Las fórmulas se convierten en números normales que nunca volverán a sortearse. Para una sola celda, también puedes seleccionar la fórmula en la barra de fórmulas y pulsar F9 para cocerla en un literal.

Regla: sortea con una fórmula viva y congélala a valores en cuanto el sorteo sea definitivo. Un resultado aleatorio que cambia en silencio con la siguiente tecla es peor que inútil para cualquier cosa que vayas a enviar por correo, auditar o usar para actuar — y el «ya lo copiaré luego» falla la primera vez que otra persona abre el archivo y Excel se resortea al cargar.

ALEATORIO.ENTRE repite: tira dados, no reparte cartas

Aquí está el malentendido que causa daño real. La gente echa mano de ALEATORIO.ENTRE(1; 500) para asignar 500 IDs únicos, o lo arrastra 50 filas hacia abajo para «elegir a 50 personas al azar», y se desconcierta cuando los valores se repiten.

=ALEATORIO.ENTRE(1; 500)   ' arrastrado 500 filas -> duplicados garantizados

ALEATORIO.ENTRE muestrea con reemplazo: cada tirada es independiente y todo el rango está disponible cada vez, exactamente como un dado que puede caer en 4 dos veces seguidas. Por las matemáticas del problema del cumpleaños, los duplicados aparecen mucho antes de lo que dicta la intuición: tira un dado de 1 a 100 solo 12 veces y una colisión ya es más probable que su ausencia.

Así que la línea de criterio es nítida:

  • Se permiten repeticiones (dados, valoraciones simuladas, datos de prueba de muestra) → ALEATORIO.ENTRE es correcto.
  • Cada resultado debe ser distinto (ganadores únicos, una muestra de filas sin reemplazo, barajar una lista) → ALEATORIO.ENTRE es la herramienta totalmente equivocada. Eso es un problema de selección, que se resuelve adjuntando una clave aleatoria y ordenando — mira Cómo seleccionar, muestrear y barajar al azar en Excel.

Amontonar guardas SI(CONTAR.SI(...)) sobre ALEATORIO.ENTRE para forzar la unicidad es un parche frágil por usar la función equivocada. Echa mano del patrón de ordenar por aleatorio en su lugar.

Decimales aleatorios en cualquier rango: el patrón =a+(b-a)*ALEATORIO()

ALEATORIO.ENTRE solo hace enteros, así que el instinto de obtener un precio aleatorio con ALEATORIO.ENTRE(50; 100)/1 (solo enteros) o ALEATORIO.ENTRE(5000; 10000)/100 (se ajusta a una rejilla de un céntimo, con un sesgo sutil) es un apaño por usar la función equivocada. Para valores aleatorios continuos, estira ALEATORIO():

=a + (b - a) * ALEATORIO()              ' decimal uniforme en [a, b)
=50 + (100 - 50) * ALEATORIO()          ' -> un decimal en cualquier punto de [50, 100)
=REDONDEAR(50 + 50*ALEATORIO(); 2)      ' -> lo mismo, redondeado a un precio real
=HOY() + ALEATORIO.ENTRE(0; 30)         ' -> una fecha aleatoria en los próximos 30 días

Lee el patrón a través del modelo mental: ALEATORIO() te da una fracción del camino de 0 a 1; multiplicar por la anchura (b − a) escala esa fracción a tu rango; sumar a la desliza hasta el punto de partida correcto. Envuélvelo en REDONDEAR cuando necesites decimales limpios o moneda. Esta única fórmula cubre todos los «número aleatorio entre X e Y» que no sean un entero pelado.

El criterio

ALEATORIO frente a ALEATORIO.ENTRE es la parte fácil: ALEATORIO para decimales, ALEATORIO.ENTRE para enteros y el estiramiento a+(b-a)*ALEATORIO() para un decimal en un rango a medida. Las decisiones que de verdad importan van del estado, no de la sintaxis. Primero: ¿este dado debe quedarse en vivo o hay que congelarlo? Si los números respaldan una decisión, congélalos a valores de inmediato — una muestra sin congelar no sobrevive al siguiente recálculo, y menos a una auditoría. Segundo: ¿necesitas repeticiones o no? ALEATORIO.ENTRE repite sin reparo, así que en cuanto tu tarea diga «único» o «muestra sin reemplazo», deja de apilarlo y cambia al enfoque de ordenar por aleatorio. Clava esas dos decisiones y la aleatoriedad en Excel deja de pelearse contigo.

Cómo te ayuda ExcelMaster

La volatilidad y la trampa de las repeticiones son justo el tipo de cosa que un asistente de fórmulas debería resolver por ti. Dile a ExcelMaster «dame 50 puntuaciones de prueba aleatorias entre 60 y 100» y escribe el generador correcto, y luego se ofrece a congelar el resultado a valores para que deje de sortearse. Pídele «un precio aleatorio entre 50 y 99,99 €» y echa mano de =REDONDEAR(50+49,99*ALEATORIO();2) en lugar de un truco con enteros sesgado. Y cuando pides algo que de verdad necesita resultados distintos —«elige 20 clientes al azar, sin repetir»—, reconoce que eso es un trabajo de muestreo y construye la fórmula de ordenar por aleatorio en vez de un ALEATORIO.ENTRE que tendrías que depurar a mano.

Preguntas frecuentes

¿Qué es la función ALEATORIO en Excel?

=ALEATORIO() devuelve un decimal aleatorio de distribución uniforme mayor o igual que 0 y menor que 1. No lleva argumentos. Es volátil, así que genera un valor nuevo cada vez que la hoja recalcula — en cualquier edición, al pulsar F9 o al reabrir el archivo. Para obtener un decimal en un rango a medida [a, b), usa =a+(b-a)*ALEATORIO().

¿Cómo funciona ALEATORIO.ENTRE y sus límites son inclusivos?

=ALEATORIO.ENTRE(inferior; superior) devuelve un entero aleatorio entre inferior y superior con ambos extremos incluidos=ALEATORIO.ENTRE(1; 6) puede devolver cualquiera de 1, 2, 3, 4, 5 o 6. Los límites pueden ser negativos (=ALEATORIO.ENTRE(-10; 10)). Igual que ALEATORIO, es volátil y se vuelve a sortear en cada recálculo.

¿Por qué mis números aleatorios no paran de cambiar en Excel?

Porque ALEATORIO y ALEATORIO.ENTRE son funciones volátiles: producen un valor aleatorio nuevo en cada recálculo, que dispara casi cualquier acción (editar una celda, pulsar F9, ordenar o reabrir el libro). Para que dejen de cambiar, conviértelos en valores estáticos: selecciona las celdas, Copia y luego Pegado especial → Valores.

¿Cómo evito que los números aleatorios se recalculen?

Congélalos a valores. Selecciona las celdas con las fórmulas aleatorias, pulsa Ctrl+C y luego pega sobre el mismo rango con Pegado especial → Valores (Ctrl+Alt+V y después V). Las celdas pasan a ser números fijos que ya no se vuelven a sortear. Para una sola celda, haz clic en la barra de fórmulas, selecciona la fórmula y pulsa F9 para convertirla en un valor literal.

¿Cómo genero números aleatorios sin duplicados?

No uses ALEATORIO.ENTRE: muestrea con reemplazo y repetirá. Para obtener valores aleatorios distintos o una muestra sin repeticiones, adjunta una clave aleatoria a cada elemento y ordena por ella, por ejemplo =SORTBY(lista; MATRIZALEAT(FILAS(lista))) para barajar, o toma los N primeros de ahí. Mira Cómo seleccionar, muestrear y barajar al azar en Excel.

Probado en

Probado en: Excel 365 (Windows 11) — última verificación el 11/07/2026.

Guías relacionadas: Excel MATRIZALEAT · Selección y muestreo aleatorios · Excel REDONDEAR · Contar valores únicos