Get-Random
난수를 가져오거나 컬렉션에서 임의로 개체를 선택합니다.
구문
Get-Random
[-SetSeed <Int32>]
[[-Maximum] <Object>]
[-Minimum <Object>]
[-Count <Int32>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Shuffle]
[<CommonParameters>]
Description
cmdlet은 Get-Random
임의로 선택된 숫자를 가져옵니다. 개체 Get-Random
컬렉션을 제출하는 경우 컬렉션에서 하나 이상의 임의로 선택된 개체를 가져옵니다.
매개 변수나 입력 Get-Random
이 없으면 명령은 0에서 0 사이의 임의로 선택된 32비트 부호 없는 정수를 반환합니다 [int32]::MaxValue
.
매개 변수 Get-Random
를 사용하여 최소값과 최대값, 컬렉션에서 반환된 개체 수 또는 시드 번호를 지정할 수 있습니다.
주의
Get-Random
는 임의성을 암호화적으로 보호하지 않습니다. 초기값은 SetSeed를 다시 사용하거나 세션을 닫을 때까지 현재 명령 및 현재 세션의 모든 후속 Get-Random
명령에 사용됩니다. 시드를 기본값으로 다시 설정할 수 없습니다.
시드를 의도적으로 설정하면 임의로 반복할 수 없는 동작이 발생합니다. 명령을 포함하는 Get-Random
스크립트를 디버깅하거나 분석하는 경우와 같이 동작을 재현하려고 할 때만 사용해야 합니다. 시드 값은 가져온 모듈과 같은 동일한 세션의 다른 코드에서 설정할 수 있습니다.
PowerShell 7.4에는 암호화된 보안 임의성을 보장하는 Get-SecureRandom이 포함되어 있습니다.
예제
예제 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.93보다 작은 임의 부동 소수점 숫자를 가져옵니다.
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: 전체 컬렉션 임의화
PowerShell 7.1부터 Shuffle 매개 변수를 사용하여 전체 컬렉션을 임의 순서로 반환할 수 있습니다.
1, 2, 3, 5, 8, 13 | Get-Random -Shuffle
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
32
25
93
95
# Commands with the same seed aren't random
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
32
32
32
# SetSeed results in a repeatable series
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
32
25
93
95
예제 10: 임의 파일 가져오기
이러한 명령은 로컬 컴퓨터의 드라이브에서 C:
임의로 선택된 50개의 파일 샘플을 가져옵니다.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
예제 11: 공정한 주사위 출시
이 예제에서는 fair die를 1200번 롤아웃하고 결과를 계산합니다. 첫 번째 명령은 ForEach-Object
파이프된 번호(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
예제 12: Count 매개 변수 사용
이제 개체Get-Random
를 파이핑하지 않고 Count 매개 변수를 사용할 수 있습니다.
다음 예제에서는 10보다 작은 세 개의 난수를 가져옵니다.
Get-Random -Count 3 -Maximum 10
9
0
8
예제 13: 빈 문자열 또는 $null 함께 InputObject 매개 변수 사용
이 예제 에서 InputObject 매개 변수는 빈 문자열(''
)과 $null
.
Get-Random -InputObject @('a','',$null)
Get-Random
a
은 ,빈 문자열 또는 $null
.를 반환합니다. 빈 따끔거림이 빈 줄로 표시되고 $null
PowerShell 프롬프트로 돌아갑니다.
매개 변수
-Count
반환할 임의의 개체 수를 지정합니다. 기본값은 1입니다.
컬렉션을 포함하는 데 사용하는 InputObject
경우:
- 임의로 선택한 각 항목은 한 번만 반환됩니다.
- Count 값이 컬렉션의 개체 수를 초과하면 컬렉션의 모든 개체가 임의 순서로 반환됩니다.
형식: | Int32 |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-InputObject
개체 컬렉션을 지정합니다. Get-Random
는 임의로 선택한 개체를 컬렉션에서 Count로 지정된 숫자까지 임의 순서로 가져옵니다. 개체, 개체가 포함된 변수, 개체를 가져오는 명령 또는 식을 입력하세요. 개체 컬렉션을 으로 파이프할 Get-Random
수도 있습니다.
PowerShell 7 부터 InputObject 매개 변수는 빈 문자열 또는 $null
를 포함할 수 있는 배열을 허용합니다. 배열을 파이프라인 아래로 보내거나 InputObject 매개 변수 값으로 보낼 수 있습니다.
형식: | 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를 사용하는 경우 cmdlet은 암호로 안전하지 않은 의사 난수를 생성합니다.
주의
시드를 설정하면 임의 동작이 아닌 동작이 발생합니다. 명령을 포함하는 Get-Random
스크립트를 디버깅하거나 분석하는 경우와 같이 동작을 재현하려고 할 때만 사용해야 합니다.
이 시드 값은 SetSeed를 다시 사용하거나 세션을 닫을 때까지 현재 명령 및 현재 세션의 모든 후속 Get-Random
명령에 사용됩니다. 시드를 기본값으로 다시 설정할 수 없습니다.
형식: | Nullable<T>[Int32] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Shuffle
전체 컬렉션을 임의 순서로 반환합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
모든 개체를 이 cmdlet으로 파이프할 수 있습니다. 파이프된 개체에서 임의로 값을 선택합니다.
출력
이 cmdlet은 정수 또는 부동 소수점 숫자 또는 제출된 컬렉션에서 임의로 선택된 개체를 반환합니다.
참고
Get-Random
는 항상 입력 값과 동일한 데이터 형식을 반환하지는 않습니다. 다음 표에서는 각 숫자 입력 형식에 대한 출력 형식을 보여줍니다.
입력 유형 | 출력 유형 |
---|---|
SByte | 두 배 |
Byte | 두 배 |
Int16 | 두 배 |
UInt16 | 두 배 |
Int32 | Int32 |
UInt32 | 두 배 |
Int64 | Int64 |
UInt64 | 두 배 |
두 배 | 두 배 |
단일 | 두 배 |
Windows PowerShell 3.0 Get-Random
부터 64비트 정수가 지원됩니다. Windows PowerShell 2.0에서는 모든 값이 System.Int32로 캐스팅됩니다.
PowerShell 7부터 RandomListItemParameterSet 매개 변수 집합의 InputObject 매개 변수는 빈 문자열 또는 $null
. 이전 PowerShell 버전에서는 RandomNumberParameterSet 매개 변수 집합의 Maximum 매개 변수만 빈 문자열 또는 $null
를 허용했습니다.
관련 링크
PowerShell