Ultimamente non sei l'unico che posta questioni relative alla generazione di numeri casuali in un dato intervallo, posto questa minuscola classettina che ho buttato giù, magari può essere utile a te o ad altri
Come puoi vedere è molto banale, e non fa altro che rimappare il valore generato dalla funzione random (di default compreso tra 0.0 e 0.1) in un differente intervallo, sia esso più piccolo, più grande o traslato a destra o a sinistra rispetto ad essocodice:public class RandomGeneratorImproved { private double min; private double max; public RandomGeneratorImproved() { this.min = 0.0; this.max = 0.1; } //volutamente priva di setter singoli per evitare problemi di congruenza //(max < min) public RandomGeneratorImproved(double min, double max) { if(min <= max) { this.min = min; this.max = max; } } public double getMin() { return min; } public double getMax() { return max; } //ritorna un numero reale compreso nell'intervallo public double getRandom() { return Math.random() * (max - min) + min; } //ritorna un valore intero compreso nell'intervallo public long getRandomLong() { return Math.round(getRandom()); } //main class di esempio public static void main(String[] args) { RandomGeneratorImproved generator = new RandomGeneratorImproved(-3,3); for (int i = 0; i < 100; i++) { System.out.println(generator.getRandom()); } for (int i = 0; i < 100; i++) { System.out.println(generator.getRandomLong()); } } }