Randomize 関数 (Visual Basic)
更新 : 2007 年 11 月
乱数ジェネレータを初期化 (乱数系列を再設定) します。
Public Shared Sub Randomize ([ Number ])
パラメータ
- Number
省略可能です。Object または任意の有効な数値式です。
解説
Randomize は Number を使用して、Rnd 関数の乱数ジェネレータに新しいシード値を指定して初期化します。Number を省略した場合、システム タイマから取得した値が新しいシード値として使われます。
Randomize ステートメントを使用しない場合、引数を指定しないで Rnd 関数を呼び出すと、最初にこの関数を呼び出したときのシード値と同じ値が使用されます。それ以降は、直前に生成された数がシード値として使用されます。
メモ : |
---|
乱数系列を繰り返すには、数値を指定して Randomize ステートメントを実行する直前に、負の引数を指定して Rnd 関数を呼び出します。Number に同じ値を指定して Randomize ステートメントを使用しても、前の乱数系列を繰り返すことはできません。 |
セキュリティに関するメモ : |
---|
Random ステートメントと Rnd 関数の開始にはシード値が使用され、有限の範囲で減少する値が生成されるため、それらのアルゴリズムを知っている人には結果が予測できる場合があります。このため、暗号化に使用する乱数の生成には、Random ステートメントと Rnd 関数を使用しないでください。詳細については、「RandomNumberGenerator」を参照してください。 |
使用例
Randomize ステートメントを使って乱数ジェネレータを初期化する例を次に示します。引数 number を省略したので、Randomize ステートメントは新しいシード値として Timer 関数からの戻り値を使用します。
' Initialize the random-number generator.
Randomize()
' Generate random value between 1 and 6.
Dim value As Integer = CInt(Int((6 * Rnd()) + 1))
必要条件
名前空間 : Microsoft.VisualBasic
モジュール : VBMath
アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)