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.
This commit is contained in:
2025-03-10 23:50:25 +00:00
committed by GitHub
parent 312e856234
commit a141938394
10 changed files with 1051 additions and 13 deletions

View File

@@ -80,7 +80,6 @@ jobs:
strategy:
matrix:
go-version:
- "1.17"
- "1.18"
- "1.19"
- "1.20"
@@ -88,11 +87,13 @@ jobs:
- "1.22"
- "1.23"
- "1.24"
- "stable"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
check-latest: true
- name: Run tests
run: make test
env: