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:
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:
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.
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.
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.
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.
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:
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.