How to generate N unique random numbers between min and max in Scala

1 Answer

0 votes
import scala.util.Random

def generateUniqueRandomNumbers(N: Int, min: Int, max: Int): Vector[Int] = {
  require(max - min + 1 >= N, "Range is too small to generate the desired number of unique random numbers")
  
  val random = new Random()
  var numbers = Set.empty[Int]
  
  while (numbers.size < N) {
    numbers += random.nextInt((max - min) + 1) + min
  }
  
  numbers.toVector
}

val N = 8

val uniqueNumbers = generateUniqueRandomNumbers(N, 1, 20)

println(uniqueNumbers)



/*
run:

Vector(14, 20, 1, 13, 2, 7, 3, 18)

*/

 



answered Sep 25, 2024 by avibootz

Related questions

...