# random()

Return a random number.

## Syntax

``random([maximum])``

## Parameter

ParameterDefinition

maximum

optional upper bound for the values returned by random 0 ≤ `random()` ≤ maximum - 1

*Valid Values*
maximum > 0

*Default*
maximum = 232 - 1 (from the underlying C function)

## Description

The `random()` function is equivalent to the standard C library `random()` function.

If maximum is zero or negative, the `random()` function will return a run-time error message.

## Example

The following example tests the random() function by simulating the rolling of a single six-sided die. If the die (and the random() function) are honest, each of the numbers is equally likely, and after an arbitrarily large number of throws, each will come up an approximately equal number of times:

``````function main() {
srandom(time()); # seed random() with the system clock
ones = twos = threes = fours = fives = sixes = 0;
limit = 6000;
count = 0;
while (count++ <= limit) {
roll = int(random(6)) + 1;
switch (roll) {
case 1: {ones++;}
case 2: {twos++;}
case 3: {threes++;}
case 4: {fours++;}
case 5: {fives++;}
case 6: {sixes++;}
}
}
expected = int(limit / 6);
print(" expected actual\n");
print(" -------- --------\n");
printf("%2d %8d %8d\n",1,expected,ones);
printf("%2d %8d %8d\n",2,expected,twos);
printf("%2d %8d %8d\n",3,expected,threes);
printf("%2d %8d %8d\n",4,expected,fours);
printf("%2d %8d %8d\n",5,expected,fives);
printf("%2d %8d %8d\n",6,expected,sixes);
}``````

The example produces the following output:

``````	expected 	actual
-------- 	--------
1 	1000 		984
2 	1000 		977
3 	1000 		1044
4 	1000 		988
5 	1000 		1036
6 	1000 		971``````

Submitting... Thank you