直接使用go官方提供的rand.Shuffle方法,需要注意随机种子的使用。
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
var arr = []uint64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
rand.Seed(time.Now().UnixNano()) // 注意,这行重要,为了使每次洗牌的结果不一样,需要用不同的随机种子,我们这里用精确到微秒的时间戳
rand.Shuffle(len(arr), func(i, j int) {
arr[i], arr[j] = arr[j], arr[i]
})
fmt.Println(arr)
}