다음을 통해 공유


Get-Random

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

Syntax

Get-Random
   [-SetSeed <Int32>]
   [[-Maximum] <Object>]
   [-Minimum <Object>]
   [-Count <Int32>]
   [<CommonParameters>]
Get-Random
   [-SetSeed <Int32>]
   [-InputObject] <Object[]>
   [-Count <Int32>]
   [<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: 전체 컬렉션 임의화

이 명령은 전체 컬렉션을 임의 순서로 반환합니다.

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

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

매개 변수

-Count

반환할 임의의 개체 수를 지정합니다. 기본값은 1입니다.

컬렉션을 포함하는 데 사용하는 InputObject 경우:

  • 임의로 선택한 각 항목은 한 번만 반환됩니다.
  • Count 값이 컬렉션의 개체 수를 초과하면 컬렉션의 모든 개체가 임의 순서로 반환됩니다.
Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

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

Type:Object[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Maximum

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

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

64비트 컴퓨터에서 최소값이 32비트 정수이면 기본값인 최대은 Int32.MaxValue입니다.

최소값이 double(부동 소수점 숫자)인 경우 최대값의 기본값은 Double.MaxValue입니다. 그렇지 않으면 기본값은 Int32.MaxValue입니다.

Type:Object
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Minimum

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

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

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SetSeed

난수 생성기의 초기값을 지정합니다. SetSeed를 사용하는 경우 cmdlet은 암호로 안전하지 않은 의사 난수를 생성합니다.

주의

시드를 설정하면 임의 동작이 아닌 동작이 발생합니다. 명령을 포함하는 Get-Random 스크립트를 디버깅하거나 분석하는 경우와 같이 동작을 재현하려고 할 때만 사용해야 합니다.

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

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

Object

모든 개체를 이 cmdlet으로 파이프할 수 있습니다. 파이프된 개체에서 임의로 값을 선택합니다.

출력

Int32

Int64

Double

PSObject

이 cmdlet은 정수 또는 부동 소수점 숫자 또는 제출된 컬렉션에서 임의로 선택된 개체를 반환합니다.

참고

Get-Random 는 항상 입력 값과 동일한 데이터 형식을 반환하지는 않습니다. 다음 표에서는 각 숫자 입력 형식에 대한 출력 형식을 보여줍니다.

입력 유형 출력 유형
SByte 두 배
Byte 두 배
Int16 두 배
UInt16 두 배
Int32 Int32
UInt32 두 배
Int64 Int64
UInt64 Double
두 배 두 배
단일 두 배

Windows PowerShell 3.0 Get-Random 부터 64비트 정수가 지원됩니다.