Генерация случайных чисел в Java: в диапазоне от 0 до 100
Быстрый ответ
Для генерации случайного числа в диапазоне от min до max в Java примените метод ThreadLocalRandom.current().nextInt(min, max + 1). В качестве примера, если min = 1 и max = 50, код будет выглядеть так:
int randomNum = ThreadLocalRandom.current().nextInt(1, 51);
System.out.println(randomNum); // Выводит случайное число в диапазоне от 1 до 50

Повышенная производительность с ThreadLocalRandom
Если ваша работа связана с многопоточными приложениями, больше подойдет класс ThreadLocalRandom вместо Random, так как он обеспечивает более высокую производительность и снижает конкуренцию между потоками.
Генерация чисел в заданном диапазоне
Чтобы получить случайное число от 0 до 100, вызовите r.nextInt(101). Если ваш диапазон начинается от low и заканчивается high, используйте формулу r.nextInt(high – low) + low. Обратите внимание, верхняя граница high в методе nextInt() не включена.
Регулирование диапазонов для включения границ
Для того чтобы верхний и нижний пределы были включены, примените следующую формулу к ThreadLocalRandom — nextInt(max – min + 1) + min. При генерации чисел типа double с использованием Math.random(), после преобразования в int, сделайте корректировку диапазона вот так:
int min = 5, max = 15;
int randomNum = min + (int)(Math.random() * ((max – min) + 1));
Генерация множества случайных чисел
Если вам требуется сгенерировать серию случайных чисел, просто используйте цикл, в который встроите логику генерации случайного числа.
Контроль над кодом с помощью методов
Вынесение генератора случайных чисел в отдельный метод способствует улучшению читабельности кода и его дальнейшего повторного использования.
public int generateRandomInRange(int min, int max){
return ThreadLocalRandom.current().nextInt(min, max + 1);
}
Визуализация
Этот процесс можно аналогично представить как стрельбу по мишени (🎯), где нужно попасть в зону между зелёным (🟢) и красным (🔴) кругами.
int min = 🟢; // Укажите минимальное значение
int max = 🔴; // Укажите максимальное значение
int randomNum = (int) (Math.random() * (max – min + 1)) + min;
// Эта формула обеспечивает попадание в диапазон между 🟢 и 🔴
Дальше случайного: SecureRandom
Для приложений, требующих повышенной безопасности, следует использовать класс SecureRandom, предоставляющий более надёжный генератор случайных чисел.
Ошибки в диапазонах: сохраняйте свои цели
Особенно важно следить за правильностью использования nextInt() и типами данных при генерации случайных чисел, чтобы избежать выхода за пределы указанных границ.
Отрицательные диапазоны: учитывайте свою ориентацию
Будьте особо осторожны при работе с отрицательными диапазонами. Используйте абсолютные значения и ясно определяйте границы, чтобы не получить нежелательных отрицательных результатов.
Использование потоков: на пути к функциональному программированию
Со введением Java 8 для генерации случайных чисел стало возможно использовать потоки (streams), что позволяет легко интегрировать элементы функционального программирования и более сложные операции, такие как создание потока случайных чисел или фильтрация.
Полезные материалы
- Random (Java Platform SE 8)
- How do I generate random integers within a specific range in Java? – Stack Overflow
- Tutorial | DigitalOcean
- Класс Java.util.Random – Tutorialspoint
- Как сгенерировать случайное число от 1 до 10 – Пример на Java | Java67
- Educative Answers – Достоверные ответы на вопросы разработчиков


