Rnd関数

乱数を戻します。

構文

Rnd[(number)]

備考

number引数には、任意の有効な数値式を指定できます。

Rnd関数は、1未満で0以上の値を戻します。numberの値によって、Rndによる乱数の生成方法が決まります:

表11-13 Rnd関数の戻り値

numberが次の場合 Rndの生成内容
ゼロ未満 シードとして数値を使用して毎回同じ数値。
ゼロより大きい シーケンス内の次の乱数。
ゼロに等しい 最近生成された数値。
指定なし シーケンス内の次の乱数。

Rnd関数を連続してコールするたびに前の数値がシーケンス内の次の数値のシードとして使用されるため、特定の初期シードに対して同じ数値シーケンスが生成されます。

Rndをコールする前に、引数なしでRandomize文を使用して、システム・タイマーに基づいたシードで乱数ジェネレータを初期化します。

指定された範囲の乱整数を生成するには、次の式を使用します:

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

ここで、upperboundは範囲内の最も高い数値で、lowerboundは範囲内の最も低い数値です。

注:

乱数のシーケンスを繰り返すには、数値の引数を指定したRandomizeを使用する直前に、負の引数を指定したRndをコールします。numberに同じ値を指定したRandomizeを使用すると、前のシーケンスは繰り返されません。

次の例では、Rnd関数が乱数を戻す方法を示します:

例1:

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

例2:

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

例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

例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

例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