generate a random number in powershell from a range but exclude 1

Viewed 8369

I want to generate a random number from a range (lets say 1 to 3) but exclude from that range specific number in variable X

So I got this code

get-random -inputobject (1..4) | where {$_ -notin $X}

this indeed generate a random number between 1 and 3 but when the generate number is equal to the number in X, it returns nothing.

How can I force it to run again when it happens so I always get a number, don't matter how many tries it takes?

1 Answers

One option is to remove the items you want to exclude before calling Get-Random:

$InputRange = 1..10
$Exclude = 3,4,5

$RandomRange = $InputRange | Where-Object { $Exclude -notcontains $_ }

Get-Random -InputObject $RandomRange
Related