次の方法で共有


Get-Random

ランダムな数値を取得するか、オブジェクトをコレクションからランダムに選択します。

構文

Get-Random [-InputObject] <Object[]> [-Count <int>] [-SetSeed <int>] [<CommonParameters>]

Get-Random [[-Maximum] <Object>] [-Minimum <Object>] [-SetSeed <int>] [<CommonParameters>]

説明

Get-Random コマンドレットは、ランダムに選択された数値を取得します。オブジェクトのコレクションを Get-Random に送ると、ランダムに選択された 1 つまたは複数のオブジェクトをコレクションから取得します。

パラメーターまたは入力のない Get-Random コマンドは、0 (ゼロ) ~ Int32.MaxValue (0x7FFFFFFF、2,147,483,647) のランダムに選択された 32 ビット符号なし整数を返します。

Get-Random のパラメーターを使用すると、シード数、最小値と最大値、および送られたコレクションから返されるオブジェクトの数を指定できます。

パラメーター

-Count <int>

返されるオブジェクトの数を指定します。既定値は 1 です。Count の値がコレクションのオブジェクトの数を超えると、Get-Random はすべてのオブジェクトをランダムな順序で返します。

必須

false

位置

named

既定値

1

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-InputObject <Object[]>

オブジェクトのコレクションを指定します。Get-Random はランダムに選択されたオブジェクトをランダムな順序でコレクションから取得します。オブジェクト (またはオブジェクトが格納されている変数) を入力するか、オブジェクトを取得するコマンドまたは式を入力します。Get-Random に対してオブジェクトのコレクションをパイプ処理することもできます。

必須

true

位置

1

既定値

パイプライン入力を許可する

true (ByValue)

ワイルドカード文字を許可する

false

-Maximum <Object>

乱数の最大値を指定します。Get-Random は最大値より小さい (等しくない) 値を返します。32 ビット整数、倍精度浮動小数点数、または数値文字列 ("100") のように整数または倍精度に変換できるオブジェクトを入力します。Maximum の値は Minimum の値より大きい (等しくない) 必要があります。

Maximum または Minimum の値が浮動小数点数である場合は、Get-Random はランダムに選択された浮動小数点数を返します。

Minimum の値が倍精度 (浮動小数点数) である場合は、Maximum の既定値は Double.MaxValue です。それ以外の場合、既定値は Int32.MaxValue (2,147,483,647 または 0x7FFFFFFF) です。

必須

false

位置

1

既定値

Int32.MaxValue

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Minimum <Object>

乱数の最小値を指定します。32 ビット整数、倍精度浮動小数点数、または数値文字列 ("100") のように整数または倍精度に変換できるオブジェクトを入力します。既定値は 0 (ゼロ) です。

Minimum の値は Maximum の値より小さい (等しくない) 必要があります。Maximum または Minimum の値が浮動小数点数である場合は、Get-Random はランダムに選択された浮動小数点数を返します。

必須

false

位置

named

既定値

0

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-SetSeed <int>

乱数ジェネレーターのシード値を指定します。このシード値は、SetSeed を再度使用するか、セッションを終了するまで、現在のセッションで現在のコマンドと後続のすべての Get-Random コマンドに使用されます。シードをクロックに基づく既定値にリセットすることはできません。

SetSeed パラメーターは必須ではありません。既定では、Get-Random はシステム クロックを使用して、シード値を生成します。SetSeed はランダムでない動作を生じるので、通常は、Get-Random コマンドが含まれているスクリプトのデバッグや分析時など、動作の再生を試みる場合にのみ使用されます。

必須

false

位置

named

既定値

System clock

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

System.Object

Get-Random に対して 1 つまたは複数のオブジェクトをパイプ処理できます。Get-Random はパイプ処理されたオブジェクトからランダムに値を選択します。

出力

System.Object

Get-Random は、整数、浮動小数点数、または送られたコレクションからランダムに選択されたオブジェクトを返します。

Get-Random は、セッションの開始時に、システム時刻のクロックに基づいて各セッションの既定のシードを設定します。

例 1

C:\PS>get-random

3951433

説明
-----------
このコマンドは、0 (ゼロ) ~ Int32.MaxValue のランダムな整数を取得します。





例 2

C:\PS>get-random -maximum 100

47

説明
-----------
このコマンドは、0 (ゼロ) ~ 99 のランダムな整数を取得します。





例 3

C:\PS>get-random -minimum -100 -maximum 100

-56

説明
-----------
このコマンドは、-100 ~ 99 のランダムな整数を取得します。





例 4

C:\PS>get-random -min 10.7 -max 20.93

18.08467273887

説明
-----------
このコマンドは、10.7 以上で 20.92 より小さいランダムな浮動小数点数を取得します。





例 5

C:\PS>get-random -input 1, 2, 3, 5, 8, 13

8

説明
-----------
このコマンドは、ランダムに選択された数値を指定された配列から取得します。





例 6

C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count 3

3
1
13

説明
-----------
このコマンドは、ランダムに選択された 3 つの数値を配列からランダムな順序で取得します。





例 7

C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count ([int]::MaxValue)

2
3
5
1
8
13

説明
-----------
このコマンドは、コレクション全体をランダムな順序で返します。Count パラメーターの値は、整数の静的な MaxValue プロパティです。

コレクション全体をランダムな順序で返すには、コレクションのオブジェクト数以上の数値を入力します。





例 8

C:\PS>get-random -input "red", "yellow", "blue"

yellow

説明
-----------
このコマンドは、ランダムな値を数値以外のコレクションから返します。





例 9

C:\PS>get-process | get-random

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    144       4     2080        488    36     0.48   3164 wmiprvse

説明
-----------
このコマンドは、ランダムに選択されたプロセスをコンピューター上のプロセスのコレクションから取得します。





例 10

C:\PS>get-content servers.txt | get-random -count (get-content servers.txt).count | foreach {invoke-expression -computer $_ -command 'get-process powershell'}

説明
-----------
このコマンドは、コマンドを一連のリモート コンピューター上でランダムな順序で実行します。





例 11

C:\PS>get-random -max 100 -setseed 23


# Commands with the default seed are pseudorandom
PS C:\ps-test> get-random -max 100
59
PS C:\ps-test> get-random -max 100
65
PS C:\ps-test> get-random -max 100
21

# Commands with the same seed are not random
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100 -setseed 23
74

# SetSeed results in a repeatable series
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100
56
PS C:\ps-test> get-random -max 100
84
PS C:\ps-test> get-random -max 100
46
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100
56
PS C:\ps-test> get-random -max 100
84
PS C:\ps-test> get-random -max 100
46

説明
-----------
この例は、SetSeed パラメーターを使用したときの結果を示しています。SetSeed はランダムでない動作を生じるので、通常は、スクリプトのデバッグや分析時など、結果を再生する場合にのみ使用されます。





例 12

C:\PS>$files = dir -path c:\* -recurse

C:\PS> $sample = $files | get-random -count 50

説明
-----------
これらのコマンドは、ランダムに選択された 50 ファイルのサンプルをローカル コンピューターの C: ドライブから取得します。





例 13

C:\PS>get-random 10001

7600

説明
-----------
このコマンドは、10001 より小さいランダムな整数を取得します。Maximum パラメーターには位置 1 があるため、値がコマンドの最初のパラメーターまたは名前付きでない唯一のパラメーターである場合は、パラメーター名を省略できます。