# Mehrere Zufallszahlen erzeugen, aber keine darf doppelt erzeugt werden - Wie?



## Jack159 (4. Feb 2012)

Hallo,

Ich habe folgenden Code:


```
int anzahlZiele;
String trefferListe2[] = new String[12]

		 for (int i = 0; i<anzahlZiele; i++) {
			 int indexZiel = myRandom(1, 11);
			 trefferListe2[indexZiel] = "Treffer";
			}

 
public static int myRandom(int low, int high) {  
        return (int) (Math.random() * (high - low) + low);  
    }
```

Mein Ziel ist es, dass x Felder in trefferListe2 mit dem String "Treffer" belegt werden, jedoch an zufällig ausgewählten Feldpositionen (von den 12 Feldpositionen).

Bei dem oben stehenden Code habe ich das Problem, dass es vorkommen kann, dass ich zwar anzahlZiele=3 habe, jedoch durch indexZiel beim Schleifendurchlauf mehrfach an der selben Feldposition "Treffer" belegt wird. Damit wäre dann anzahlZiele=3, jedoch habe ich eigentlich nur 2 Felder belegt, anstatt wie vorgesehen 3 Felder.

Ich muss es hinkriegen, dass keine Feldposition im Array doppelt belegt wird. Wie kriege ich das hin?


----------



## Gast2 (4. Feb 2012)

Möglichkeit 1: Du musst dir merken welche Zufallszahlen schon gezogen wurden.
Möglichkeit 2: Liste mit Zahlen füllen (1 bis 11), Liste sortieren, die ersten x Zufallszahlen der Liste nehmen.


----------



## Jack159 (4. Feb 2012)

Möglichkeit 2 hört sich gut an, danke dir


----------



## Landei (5. Feb 2012)

Möglichkeit 2 lässt sich bequem mit [c]java.util.Collections.shuffle[/c] erledigen.


----------



## ARadauer (5. Feb 2012)

EikeB hat gesagt.:


> Liste sortieren



eher mischen..


----------



## Gast2 (5. Feb 2012)

Ja natürlich


----------

