Метод заполнения объекта-компоновщика Array делает это довольно простым.
scala> val random = new java.security.SecureRandom
random: java.security.SecureRandom = java.security.SecureRandom@12cb94b7
scala> def random2dArray(dim1: Int, dim2: Int, maxValue: Int) = Array.fill(dim1, dim2) { random.nextInt(maxValue) }
random2dArray: (dim1: Int,dim2: Int,maxValue: Int)Array[Array[Int]]
scala> random2dArray(3, 3, 100)
res0: Array[Array[Int]] = Array(Array(20, 80, 12), Array(99, 63, 82), Array(9, 76, 85))