package main
import (
"fmt"
"math/rand"
"time"
)
func randomExcluding(N int, excluded []int) int {
if len(excluded) > N + 1 {
return -1 // All numbers are excluded
}
rand.Seed(time.Now().UnixNano())
for {
num := rand.Intn(N + 1)
if !contains(excluded, num) {
return num
}
}
}
func contains(slice []int, value int) bool {
for _, v := range slice {
if v == value {
return true
}
}
return false
}
func main() {
excluded := []int{2, 5, 7}
N := 14
result := randomExcluding(N, excluded)
fmt.Println(result)
}
/*
run:
9
*/