Simple Random Number Demonstration Script

I was delivering my session today at the Alpharetta (Atlanta) PFE Technology Day, and needed to come up with a good way to give away a free book to the class.  Right before class I threw a little script together to use the random number capabilities of PowerShell.  The script is below:



$rand = new-object random

$ofstudents = 50

for ($i=1;$i -le 100;$i++)


start-sleep -seconds 2


write-host "And the Winner Is!!!!!"

start-sleep -seconds 5

(new-object -comobject$([math]::Round($rand.NextDouble()*$ofstudents,0)))


The key piece here is the use of the object type "random" which is system.random and can be found in the MSDN .Net documentation (  Once the object is created, you use methods to actually get the numbers.  I have always like getting a decimal between 0 and 1 so that I can simply multiply it times the range I want to generate any number.  I am using the .NextDouble() method to get my numbers (  In this case I multiply it times the number of students and round off the number.  I do this 100 times and the 101 first random number is the winner.

I took this opportunity as well to use the old .Popup() method to created a little popup box for the winner display.  Like most of my posts, this is not rocket science here, but it was a fun little way to demo a simple PowerShell script that uses random numbers and an old COM object while giving away some SWAG…yes it was Ed Wilson’s PowerShell Step-By-Step book :)



This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at

Comments (0)