This version is out of date, covering development from v6.0.0 to v6.6.5. It is maintained here only for inbound reference links from elsewhere. It is no longer actively updated. # rand()

Operator Type:

Operator Scope of Action:

Operator Purpose:

Operator Altered:

Function   [other Function type actions]

Item   [operators of similar scope]

Mathematical   [other Mathematical operators]

Baseline

rand()

rand() returns a pseudo-random number between 0 and 1. No argument is required.

Getting 1-based ranges vs. zero-based ranges of values

Consider:

`\$MyNum=round(rand()*10)`

\$MyNum will now be one of eleven integers in the range 0 through to 10.

But, what if the '10' argument about is actually a child count:

`\$MyNum=round(rand()*\$ChildCount)`

If the \$ChildCount was 10 and \$MyNum were used to fetch a random child using \$SiblingOrder(\$MyNum) the process would fail if \$MyNum were zero. \$SiblingOrder numbers from 1. Indeed, in this case the need is for ten integers, one through to ten.

A 1-based range can be achieved:

`\$MyNum=round(rand()*(10-1))+1`

`\$MyNum=round(rand()*(\$ChildCount-1))+1`

If the main input is 10, by subtracting 1 the process returns a randomised integer in in the range 0-9 (ten numbers) and then adding back 1 shifts the value range to 1-10.

A Tinderbox Reference File : Actions & Rules : Operators : Full Operator List : rand()