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