Variante 1: Math.random()
int x = Min + (int)(Math.random() * ((Max - Min) + 1))
Die Zahl x ist eine Zufallszahl im Bereich [Min, Max].
Im Detail
Die Java Math Funktion Math.random() gibt einen double Werte im Bereich [0, 1) zurück, wobei die 1 nicht mit eingeschlossen ist. Man sollte den Zufallswert also zunächst mit ‘Max-Min’ multiplizieren, um den Bereich abzudecken.
Math.random() * ( Max - Min )
Dies liefert einen Wert im Bereich [0, Max – Min), wobei der Endwert ‘Max – Min’ nicht enthalten ist. Nun sollte der Bereich noch in den gewünschten Bereich verschoben werden, indem man ‘Min’ dazu addiert.
Min + (Math.random() * (Max - Min))
Die Zufallszahl enthält allerdings immer noch nicht den Wert ‘Max’, d.h. man muss 1 zum Wert ‘Max – Min’ hinzuaddieren. Abschließend müssen noch alle Nachkommastellen durch ein Casten zu (int) entfernt werden.
Min + (int)(Math.random() * ((Max - Min) + 1))
Variante 2: Random()
Random ran = new Random(); int x = Min + ran.nextInt(Max - Min + 1);
Die Zahl x ist eine Zufallszahl im Bereich [Min, Max].