java.util.Random のインスタンス r で、0 から n-1 の乱数を生成したいのであれば、(int)(r.nextDouble() * n) ではなく r.nextInt(n) を使用します。
java.util.Random
r
0
n-1
(int)(r.nextDouble() * n)
r.nextInt(n)
nextInt メソッドへの引数は整数でなければなりません。 たとえば、-99から0までの乱数を生成したいなら、-r.nextInt(100) を使用してください。
nextInt
-r.nextInt(100)