To read the article online, visit

User Tips: Making Quick, Random Decisions in an ASP Page

There are certain times when you'd like an ASP script to randomly choose to do one of N tasks. One can use the Randomize statement and the Rnd function in VBScript to select a random number. In fact, this is the only way to generate truly random numbers. But sometimes generating a purely random number isn't that important, you would just like to do 1 of N things, where each of the N events are equally probable.

For examle, on the homepage I have a space reserved to place a link to one of my two books: Designing Active Server Pages and Sams Teach Yourself ASP 3.0 in 21 Days. I wanted to randomly have each book displayed... however, I am not too concerned about true randomness and am more interested in having each book shown with equal probability.

It struck me that a very easy thing to do would be to determine the current time (using the Time function), grab the seconds (using the Second function) and then Mod 2 the result. The Mod operator is used like:

Number1 Mod Number2

dividing Number1 and Number2 and returning the remainder. Here is a simple chart of Mod values:

Mod Values
Number1Number2 Number1 Mod Number2

So, to give two events the same probability, I simply did:

Dim iEventID
iEventID = Second(Time) Mod 2

'At this point iEventID will equal 0 or 1
If iEventID = 0 then
  'do event 0
Else 'iEventID == 1
  'do event 1
End If

That's all there is to it! A quick and dirty way to act on one of two events with equal probability!

Is that Number Even or Odd?
The Mod operator can be used to quickly determine if a number is even or odd! Assume we have some integer value, iVal. If iVal Mod 2 = 0 then iVal is even; if, on the other hand, iVal Mod 2 = 1, then iVal is odd!

Happy Programming!

Return to user tips...

Article Information
Article Title: User Tips: Making Quick, Random Decisions in an ASP Page
Article Author: Scott Mitchell
Article URL:

Copyright 2019 QuinStreet Inc. All Rights Reserved.
Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers