Cómo generar números aleatorios únicos en Excel

Sabemos que es posible generar números aleatorios utilizando la función ALEATORIO y también la función ALEATORIO.ENTRE, sin embargo ninguna de estas funciones garantiza que tendremos números aleatorios únicos en Excel.

Números aleatorios repetidos

A continuación haré una prueba. Voy a generar 25 números aleatorios con la función ALEATORIO.ENTRE que se encuentren entre 1 y 50 y podrás ver que la función repite algunos números. En la siguiente imagen puedes observar que se repiten los números 9, 32, 40, 43, 45 y 50. Solo he marcado los primeros tres para facilitar su ubicación:

Números aleatorios con la función ALEATORIO.ENTRE

Por supuesto, si haces esta prueba en tu propia hoja de Excel obtendrás resultados diferentes a los míos, pero si haces este mismo ejercicio podrás ver que la función ALEATORIO.ENTRE casi siempre repite los números aleatorios que genera.

Cómo generar números aleatorio únicos

Si lo que necesitas es generar números aleatorios únicos en Excel te sugiero hacerlo utilizando una macro ya que de esa manera podremos comparar los números aleatorios previamente generados y descartar cualquiera que se repita. Considera el siguiente código de la función AleatoriosUnicos:

Macro para generar números aleatorios únicos en Excel

He agregado esta función dentro de un nuevo módulo. Observa que recibe 3 parámetros que indican el límite inferior y superior de los números aleatorios así como la cantidad de números que necesitamos.

La función devolverá una cadena de texto que contendrá los números aleatorios únicos que necesitamos. La lógica de este código VBA es la siguiente:

1. Se crea un arreglo iArr del tamaño de todo el rango de número posibles, desde el límite inferior hasta el superior y cada elemento del arreglo se inicializa con su número correspondiente.
Arreglo con números aleatorios únicos

2. El bucle For Next siguiente “revolverá” los valores dentro del mismo arreglo. En cada ciclo del bucle se intercambiarán dos valores del arreglo. El primer elemento a intercambiar es elegido al azar con ayuda de la función Rnd y el segundo elemento estará definido por la variable i. La variable temp se usa como ayuda en el intercambio de ambos valores. Este proceso se repite tantas veces como elementos existan en el arreglo.
Intercambiar números dentro del arreglo

3. Una vez que se han revuelto todos los valores dentro del arreglo se obtienen las primeras posiciones de acuerdo a la cantidad de números solicitados. El resultado es una cadena de texto con los números aleatorios separados por un espacio.
Devolver cadena con números aleatorios únicos

De esta manera garantizamos que los números nunca se repitan ya que en realidad no estamos generando ningún número aleatorio nuevo sino intercambiando la posición de los elementos dentro del mismo arreglo.

Comprobar la generación de números aleatorios

Para comprobar el buen funcionamiento de esta macro que genera números aleatorios únicos en Excel agregaré a una hoja un botón desde el cual haré uso de la función AleatoriosUnicos que acabamos de crear.

Utilizar la macro que genera números aleatorios únicos

Observa cómo al pulsar el botón se ejecutará la macro y obtendremos el resultado en la celda B4 tomando como parámetros los valores de las celdas superiores:

Cómo generar números aleatorios en Excel

Ahora ya sabes cómo generar números aleatorios únicos en Excel. Puedes descargar la hoja de trabajo que contiene el código VBA y hacer cualquier modificación y mejora que desees.