次の方法で共有


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

入力

Object

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にキャストされます。