So generieren Sie nicht wiederholende Zufallszahlen

Ich versuche, Zahlen in einem Array zufällig zu ordnen. Das kann ich mitarc4random() % [indexes count]

Mein Problem ist: Wenn ein Array aus 20 Elementen besteht, sollte jedes Mal, wenn das Array in einem Stapel von 5 Elementen gemischt wird, eine andere Nummer angezeigt werden. Beispiel:

erste mischung: 1,4,2,5,6.

zweiter Shuffle: 7,12,9,15,3

-(IBAction)randomNumbers:(UIButton *)sender
{
    int length = 10; // int length = [yourArray count];

    NSMutableArray *indexes = [[NSMutableArray alloc] initWithCapacity:length];
    for (int i=0; i<5; i++)
        [indexes addObject:[NSNumber numberWithInt:i]];

    NSMutableArray *shuffle = [[NSMutableArray alloc] initWithCapacity:length];

    while ([indexes count])
    {
        int index = arc4random() % [indexes count];
        [shuffle addObject:[indexes objectAtIndex:index]];
        [indexes removeObjectAtIndex:index];
    }

    //    for (int i=0; i<[shuffle count]; i++)
    NSLog(@"%@", [shuffle description]);
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage