直接使用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)
}

 

posted on 2022-03-04 21:37  Boom__Clap  阅读(261)  评论(0编辑  收藏  举报