Ответ 1
Чтобы создать случайное значение int (равномерное распределение) между от и до (включительно), используйте:
from + rndGenerator.nextInt(to - from + 1)
В вашем случае (1.sides):
1 + rndGenerator.nextInt(sides)
Возможный дубликат:
Java: генерирование случайного числа в диапазоне
Я хочу создать случайный int в логическом диапазоне. Итак, скажем, например, я пишу программу для "броска" кости с указанным количеством сторон.
public int rollDice() { Random generator = new Random(); return generator.nextInt(sides); }
Теперь проблема заключается в том, что это приведет к возврату значений между сторонами и нулевым включением, что не имеет смысла, потому что большинство костей идут от 1 до 6, 9 и т.д. Итак, как я могу указать, что nextInt должен работать между 1 и числом сторон?
Чтобы создать случайное значение int (равномерное распределение) между от и до (включительно), используйте:
from + rndGenerator.nextInt(to - from + 1)
В вашем случае (1.sides):
1 + rndGenerator.nextInt(sides)