Add equivalent to `Shuffle` function from `math/rand` and `math/rand/v2`
packages, but based on randomness from `crypto/rand` package. This
allows cryptographically secure shuffling of data.
Also add `ShuffleSlice` function that shuffles a slice of any type.
BREAKING CHANGE: Minimum required Go version is now 1.18 due the `ShuffleSlice` using generics.
randsmust is specifically intended as an alternative to rands for use in
tests. All functions return a single value, and panic in the event of an
error. This makes them easy to use when building structs in test cases
that need random data.
Internally the package simply calls the equivalent function from the
rands package, and panics if a error is returned.