다음을 통해 공유


Get-Random

난수를 가져오거나 컬렉션에서 임의로 개체를 선택합니다.

구문

Get-Random
   [-SetSeed <Int32>]
   [[-Maximum] <Object>]
   [-Minimum <Object>]
   [<CommonParameters>]
Get-Random
   [-SetSeed <Int32>]
   [-InputObject] <Object[]>
   [-Count <Int32>]
   [<CommonParameters>]

Description

Get-Random cmdlet은 임의로 선택된 숫자를 가져옵니다. Get-Random개체 컬렉션을 제출하면 컬렉션에서 하나 이상의 임의로 선택된 개체를 가져옵니다.

매개 변수나 입력이 없으면 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: 배열에서 여러 임의 정수 가져오기

이 명령은 배열에서 임의로 선택된 세 개의 숫자를 임의 순서로 가져옵니다.

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: 공정한 주사위 출시

이 예제에서는 fair die를 1200번 롤아웃하고 결과를 계산합니다. 첫 번째 명령인 For-EachObject 파이프된 숫자에서 Get-Random 호출을 반복합니다(1-6). 결과는 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
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-InputObject

개체 컬렉션을 지정합니다. Get-Random 컬렉션에서 임의로 선택한 개체를 Count지정된 수까지 임의 순서로 가져옵니다. 개체, 개체를 포함하는 변수 또는 개체를 가져오는 명령이나 식을 입력합니다. 개체 컬렉션을 Get-Random파이프할 수도 있습니다.

형식:Object[]
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Maximum

난수의 최대값을 지정합니다. Get-Random 최대값(같지 않음)보다 작은 값을 반환합니다. 정수, 배정밀도 부동 소수점 숫자 또는 숫자 문자열("100")과 같이 정수 또는 double으로 변환할 수 있는 개체를 입력합니다.

최대 값은 최소값보다 커야 합니다. 최대 또는 최소 값이 부동 소수점 숫자인 경우 Get-Random 임의로 선택한 부동 소수점 숫자를 반환합니다.

64비트 컴퓨터에서 최소 값이 32비트 정수이면 최대 기본값은 int32.MaxValue.

최소 값이 double(부동 소수점 숫자)이면 최대 기본값은 double.MaxValue. 그렇지 않으면 기본값은 Int32.MaxValue.

형식:Object
Position:0
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Minimum

난수의 최소값을 지정합니다. 정수, 배정밀도 부동 소수점 숫자 또는 숫자 문자열("100")과 같이 정수 또는 double으로 변환할 수 있는 개체를 입력합니다. 기본값은 0입니다.

최소 값은 최대값보다 작아야 합니다. 최대 또는 최소 값이 부동 소수점 숫자인 경우 Get-Random 임의로 선택한 부동 소수점 숫자를 반환합니다.

형식:Object
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-SetSeed

난수 생성기의 초기값을 지정합니다. 이 시드 값은 SetSeed 다시 사용하거나 세션을 닫을 때까지 현재 명령 및 현재 세션의 모든 후속 Get-Random 명령에 사용됩니다. 초기값을 기본값으로 다시 설정할 수 없습니다.

SetSeed 매개 변수는 필요하지 않습니다. 기본적으로 Get-RandomRandomNumberGenerator() 메서드를 사용하여 시드 값을 생성합니다. SetSeed 비 임의 동작이 발생하므로 일반적으로 Get-Random 명령이 포함된 스크립트를 디버깅하거나 분석할 때와 같이 동작을 재현하려고 할 때만 사용됩니다.

형식:Int32
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

Object

하나 이상의 개체를 파이프할 수 있습니다. 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캐스팅됩니다.