Función Rnd

Devuelve un número aleatorio.

Sintaxis

Rnd[(number)]

Observaciones

El argumento number puede ser cualquier expresión numérica válida.

La función Rnd devuelve un valor menor que 1 pero mayor o igual que 0. El valor de number determina la forma en que Rnd genera un número aleatorio:

Tabla 11-13 Valores de retorno de la función Rnd

Si number es Rnd genera
Menor que cero El mismo número cada vez, con number como valor inicial.
Mayor que cero El siguiente número aleatorio de la secuencia.
Igual a cero El número generado más recientemente.
No se proporciona El siguiente número aleatorio de la secuencia.

Para cualquier valor inicial proporcionado, se genera la misma secuencia numérica porque cada llamada sucesiva a la función Rnd utiliza el número anterior como valor inicial para el siguiente número de la secuencia.

Antes de llamar a Rnd, utilice la sentencia Randomize sin un argumento para inicializar el generador de números aleatorios con un valor inicial basado en el temporizador del sistema.

Para producir enteros aleatorios en un rango determinado, utilice esta fórmula:

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

En este caso, upperbound es el número más alto del rango y lowerbound es el número más bajo del rango.

Nota:

Para repetir secuencias de números aleatorios, llame a Rnd con un argumento negativo inmediatamente antes de utilizar Randomize con un argumento numérico. El uso de Randomize con el mismo valor para el número no repite la secuencia anterior.

En los siguientes ejemplos se muestra cómo las funciones Rnd devuelven números aleatorios:

Ejemplo 1:

Dim randomNumber
Randomize  ' Initialize random-number generator
randomNumber = Rnd
'Output: random number between 0 and 1

Ejemplo 2:

Dim randomNumber
Randomize  ' Initialize random-number generator
randomNumber = Rnd(-1)  ' Use -1 as the seed
'Output: the same random number each time

Ejemplo 3:

Dim randomNumber
Randomize  ' Initialize random-number generator
randomNumber = Rnd  ' Generate the first random number
'Output: the first random number
randomNumber = Rnd  ' Generate the next random number
'Output: the next random number

Ejemplo 4:

Dim randomNumber
Randomize ' Initialize random-number generator
randomNumber = Rnd(0)  ' Generate a random number and store it
'Output: the most recently generated random number

Ejemplo 5:

Dim lowerbound, upperbound, randomNumber
lowerbound = 1
upperbound = 10
Randomize  ' Initialize random-number generator
randomNumber = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
'Output: a random integer between 1 and 10