Get-Random
乱数を取得するか、コレクションからオブジェクトをランダムに選択します。
構文
Get-Random
[-SetSeed <Int32>]
[[-Maximum] <Object>]
[-Minimum <Object>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
説明
Get-Random
コマンドレットは、ランダムに選択された番号を取得します。
Get-Random
にオブジェクトのコレクションを送信すると、そのコレクションからランダムに選択された 1 つ以上のオブジェクトが取得されます。
パラメーターまたは入力がない場合、 Get-Random
コマンドは 0 (ゼロ) から Int32.MaxValue (0x7FFFFFFF
, 2,147,483,647
) までのランダムに選択された 32 ビット符号なし整数を返します。
Get-Random
のパラメーターを使用して、シード番号、最小値と最大値、および送信されたコレクションから返されるオブジェクトの数を指定できます。
例
例 1: ランダムな整数を取得する
このコマンドは、0 (ゼロ) ~ Int32.MaxValueのランダムな整数を取得します。
Get-Random
3951433
例 2: 0 ~ 99 のランダムな整数を取得する
Get-Random -Maximum 100
47
例 3: -100 から 99 までのランダムな整数を取得する
Get-Random -Minimum -100 -Maximum 100
56
例 4: ランダムな浮動小数点数を取得する
このコマンドは、10.7 以上 20.92 未満のランダムな浮動小数点数を取得します。
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
例 5: 配列からランダムな整数を取得する
このコマンドは、指定した配列からランダムに選択された数値を取得します。
1, 2, 3, 5, 8, 13 | Get-Random
8
例 6: 配列から複数のランダムな整数を取得する
このコマンドは、配列からランダムに選択された 3 つの数値をランダムに取得します。
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
例 7: コレクション全体をランダム化する
このコマンドは、コレクション全体をランダムな順序で返します。
Count パラメーターの値は、整数の静的プロパティ MaxValue です。
コレクション全体をランダムな順序で返すには、コレクション内のオブジェクトの数以上の数値を入力します。
1, 2, 3, 5, 8, 13 | Get-Random -Count ([int]::MaxValue)
2
3
5
1
8
13
例 8: 数値以外のランダムな値を取得する
このコマンドは、数値以外のコレクションからランダムな値を返します。
"red", "yellow", "blue" | Get-Random
yellow
例 9: SetSeed パラメーターを使用する
この例では、SetSeed パラメーターを使用した場合の効果を示します。
SetSeed はランダムでない動作を生成するため、通常はスクリプトのデバッグや分析など、結果を再現するためにのみ使用されます。
# Commands with the default seed are pseudorandom
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
74
56
84
46
# Commands with the same seed are not random
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
74
74
74
# SetSeed results in a repeatable series
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
74
56
84
46
例 10: ランダム ファイルを取得する
これらのコマンドは、ローカル コンピューターの C:
ドライブからランダムに選択された 50 個のファイルのサンプルを取得します。
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
例 11: 公正なサイコロをロールする
この例では、フェア ダイを 1200 回ロールし、結果をカウントします。 最初のコマンド For-EachObject
、パイプされた番号 (1 から 6) から Get-Random
への呼び出しを繰り返します。 結果は、Group-Object
を持つ値でグループ化され、Select-Object
テーブルとして書式設定されます。
1..1200 | ForEach-Object {
1..6 | Get-Random
} | Group-Object | Select-Object Name,Count
Name Count
---- -----
1 206
2 199
3 196
4 226
5 185
6 188
パラメーター
-Count
返すランダムなオブジェクトまたは数値の数を指定します。 既定値は 1 です。
InputObject
と共に使用すると、Count の値がコレクション内のオブジェクトの数を超えると、Get-Random
はすべてのオブジェクトをランダムな順序で返します。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InputObject
オブジェクトのコレクションを指定します。
Get-Random
は、Countで指定された数まで、ランダムに選択されたオブジェクトをコレクションからランダムに取得します。 オブジェクト、オブジェクトを含む変数、またはオブジェクトを取得するコマンドまたは式を入力します。 オブジェクトのコレクションをパイプ処理して Get-Random
することもできます。
型: | Object[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Maximum
乱数の最大値を指定します。
Get-Random
最大値より小さい (等しくない) 値を返します。 整数、倍精度浮動小数点数、または数値文字列 ("100") などの整数または double に変換できるオブジェクトを入力します。
Maximum の値は、Minimumの値より大きくする必要があります。
Maximum または Minimum の値が浮動小数点数の場合、Get-Random
はランダムに選択された浮動小数点数を返します。
64 ビット コンピューターでは、Minimum の値が 32 ビット整数の場合、Maximum の既定値は Int32.MaxValue です。
Minimum の値が double (浮動小数点数) の場合、既定値の Maximum は Double.MaxValue です。 それ以外の場合、既定値は Int32.MaxValue です。
型: | Object |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Minimum
乱数の最小値を指定します。 整数、倍精度浮動小数点数、または数値文字列 ("100") などの整数または double に変換できるオブジェクトを入力します。 既定値は 0 (ゼロ) です。
Minimum の値は、Maximumの値より小さくする必要があります。
Maximum または Minimum の値が浮動小数点数の場合、Get-Random
はランダムに選択された浮動小数点数を返します。
型: | Object |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SetSeed
乱数ジェネレーターのシード値を指定します。 このシード値は、SetSeed をもう一度使用するか、セッションを閉じるまで、現在のコマンドと、現在のセッション内の後続のすべての Get-Random
コマンド 使用されます。 シードをデフォルト値にリセットすることはできません。
SetSeed パラメーターは必須ではありません。 デフォルトでは、 Get-Random
は RandomNumberGenerator() メソッドを使用してシード値を生成します。
SetSeed はランダムでない動作になるため、通常は、Get-Random
コマンドを含むスクリプトのデバッグや分析など、動作を再現しようとする場合にのみ使用されます。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
1 つ以上のオブジェクトをパイプ処理できます。
Get-Random
パイプされたオブジェクトからランダムに値を選択します。
出力
System.Int32, System.Int64, System.Double
Get-Random
整数または浮動小数点数、または送信されたコレクションからランダムに選択されたオブジェクトを返します。
メモ
Get-Random
セッション開始時のシステムタイムクロックに基づいて、各セッションのデフォルトのシードを設定します。
Windows PowerShell 3.0 以降、Get-Random
では 64 ビット整数がサポートされています。 Windows PowerShell 2.0 では、すべての値が System.Int32にキャストされます。