go.charczuk.com@v0.0.0-20240327042549-bc490516bd1a/sdk/iter/random_select.go (about) 1 /* 2 3 Copyright (c) 2023 - Present. Will Charczuk. All rights reserved. 4 Use of this source code is governed by a MIT license that can be found in the LICENSE file at the root of the repository. 5 6 */ 7 8 package iter 9 10 import "math/rand" 11 12 // RandomSelect returns a random selection from the values. 13 func RandomSelect[A any](r *rand.Rand, values []A, count int) (output []A) { 14 maxIndex := len(values) - 1 15 output = make([]A, count) 16 for x := 0; x < count; x++ { 17 output[x] = values[r.Intn(maxIndex)] 18 } 19 return 20 }