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