Generates a pseudo-random number, uniformly distributed within the range 0 to 1.
$random(number)
number | a number, or an expression that evaluates to a number, that acts as a seed for the random number generator |
Number, with the same number of decimal places as number.
Use $random to generate a series of random numbers, by calling the function first with a seed value, and thereafter with $Null. The value returned by $random is a number in the range 0 to 1, with the same number of decimal places as number.
To pass the null property to $random, create a variable of a number data type (INT, LONGINT, VASTINT, numeric) and with the desired number of decimal places. Use this variable on subsequent calls to $random after seeding. (Remember that an uninitialized variable is always $Null.)
If you seed the random number generator with the same number on two or more different occasions, you obtain the same series of "random" numbers on the first call and subsequent ($Null) calls to $random.
Under some operating systems, the seed number is ignored; an internally generated seed is used instead.
When number is $Null, the random number generator is not reseeded.
let seed = 9.999
let i = $random(seed) % i might be set to 0.798 here
let seed = $null
let i = $random(seed) % i might be set to 0.768 here
let i = $time
let i = $random(i) % first call
:
let i = $random(UninitVariable) % subsequent calls
Notice that $random($time) always returns 0 or 1, because $Time has no decimal places. Variable i is used to provide the necessary decimal places.