Files
rands/randsmust/shuffle_example_test.go
Jim Myhrberg a141938394 feat(shuffle)!: add Shuffle and ShuffleSlice functions (#11)
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.
2025-03-10 23:50:25 +00:00

26 lines
443 B
Go

package randsmust_test
import (
"fmt"
"github.com/jimeh/rands/randsmust"
)
func ExampleShuffle() {
numbers := []int{1, 2, 3, 4, 5}
randsmust.Shuffle(len(numbers), func(i, j int) {
numbers[i], numbers[j] = numbers[j], numbers[i]
})
fmt.Println(numbers) // => [4 2 5 3 1]
}
func ExampleShuffleSlice() {
mixed := []any{1, "two", 3.14, true, nil}
randsmust.ShuffleSlice(mixed)
fmt.Println(mixed) // => [two <nil> true 3.14 1]
}