# Module `rnd`

Bindings for interacting with the random number generator.

This module not only allows basic random number generation, but it also handles more complicated statistical stuff.

Example usage would be:

``` if rnd.rnd() < 0.5 then
-- 50% chance of this happening
else
-- And 50% chance of this happening
end
```

## Functions

 rnd (x, y) Gets a random number. sigma () Creates a number in the one-sigma range [-1:1]. twosigma () Creates a number in the two-sigma range [-2:2]. threesigma () Creates a number in the three-sigma range [-3:3]. permutation (input) Creates a random permutation

## Functions

rnd (x, y)
Gets a random number. With no parameters it returns a random float between 0 and 1.

With one parameter it returns a whole number between 0 and that number (both included). With two parameters it returns a whole number between both parameters (both included). ( x, y )

### Parameters:

• x number First parameter, read description for details.
• y number Second parameter, read description for details.

### Returns:

number A randomly generated number, read description for details.

### Usage:

• `n = rnd() -- Number in range [0:1].`
• `n = rnd(5) -- Number in range [0:5].`
• `n = rnd(3,5) -- Number in range [3,5].`
sigma ()
Creates a number in the one-sigma range [-1:1].

A one sigma range means that it creates a number following the normal distribution but limited to the 63% quadrant. This means that the number is biased towards 0, but can become either 1 or -1. It's a fancier way of generating random numbers. ()

### Returns:

number A number from [-1:1] biased slightly towards 0.

### Usage:

`n = 5.5 + rnd.sigma()/2. -- Creates a number from 5 to 6 slightly biased to 5.5.`
twosigma ()
Creates a number in the two-sigma range [-2:2].

This function behaves much like the rnd.sigma function but uses the two-sigma range, meaning that numbers are in the 95% quadrant and thus are much more random. They are biased towards 0 and approximately 63% will be within [-1:1]. The rest will be in either the [-2:-1] range or the [1:2] range. ()

### Returns:

number A number from [-2:2] biased heavily towards 0.

### Usage:

`n = 5.5 + rnd.twosigma()/4. -- Creates a number from 5 to 6 heavily biased to 5.5.`
threesigma ()
Creates a number in the three-sigma range [-3:3].

This function behaves much like its brothers rnd.sigma and rnd.twosigma. The main difference is that it uses the three-sigma range which is the 99% quadrant. It will rarely generate numbers outside the [-2:2] range (about 5% of the time) and create numbers outside of the [-1:1] range about 37% of the time. This can be used when you want extremes to appear rarely. ()

### Returns:

number A number from [-3:3] biased totally towards 0.

### Usage:

`n = 5.5 + rnd.threesigma()/6. -- Creates a number from 5 to 6 totally biased to 5.5.`
permutation (input)
Creates a random permutation This creates a list from 1 to input and then randomly permutates it, however, if an ordered table is passed as a parameter, that is randomly permuted instead. ( max )

### Parameters:

• input number or table Maximum value to permutate to.

### Returns:

table A randomly permutated table.

### Usage:

• `t = rnd.permutation( 5 )`
• `t = rnd.permutation( {"cat", "dog", "cheese"} )`
generated by LDoc 1.4.6 Last updated 2020-10-01 02:30:07