# Random numbers in Go

### Golang Concepts

## Random numbers

Go's

`math/rand`

package provides functionality for generating random numbers. The package includes a Rand type representing a source of random numbers, and functions for generating random numbers of various types.

### How to generate a random integer in Go

Here's an example of how to generate a random integer between 0 and 99:

```
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
randomInt := rand.Intn(100)
fmt.Println(randomInt) // Output: a random integer between 0 and 99
}
```

In above example, the `rand.Seed()`

function is used to initialize the random number generator with the current time in nanoseconds. This ensures that the sequence of random numbers generated is different every time the program is run. The `rand.Intn()`

function is then used to generate a random integer between 0 and 99.

Here are some other functions you can use to generate random numbers in Go:

`rand.Intn(n int) int`

: generates a random integer between 0 and n-1.`rand.Int() int`

: generates a random non-negative integer.`rand.Float32() float32`

: generates a random float between 0 and 1.`rand.Float64() float64`

: generates a random float between 0 and 1.Note that the

`math/rand`

package is not suitable for generating cryptographically secure random numbers.If you need to generate random numbers for cryptographic purposes, you should use the

`crypto/rand`

package instead.