You can use the following piece of code to randomize/shuffle the objects inside a NSMutableArray.
/* anArray is a NSMutableArray with some objects */
srandom(time(NULL));
NSUInteger count = [anArray count];
for (NSUInteger i = 0; i < count; ++i) {
int nElements = count - i;
int n = (random() % nElements) + i;
[anArray exchangeObjectAtIndex:i withObjectAtIndex:n];
}
Update @ 2012-07-18: Suggestion from kimbebot
/* anArray is a NSMutableArray with some objects */
NSUInteger count = [anArray count];
for (NSUInteger i = 0; i < count; ++i) {
int nElements = count - i;
int n = (arc4random() % nElements) + i;
[anArray exchangeObjectAtIndex:i withObjectAtIndex:n];
}
Done =)
Reference: StackOverflow – What’s the Best Way to Shuffle an NSMutableArray?