Я бы просто заполнил массив словарями, т.е.
{
{ category = Animals,
name = Cat },
{ category = Vehicles,
name = Helicopter },
{ category = Foods
name = Pie },
{ category = Animals,
name = Zebra }
}
, а затем случайным образом выбрать из этого массива.
Для программного примера:
theArray = [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"Animals", @"category", @"Cat", @"name", nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"Vehicles", @"category", @"Helicopter", @"name", nil],
// ...
[NSDictionary dictionaryWithObjectsAndKeys:@"Animals", @"category", @"Zebra", @"name", nil],
nil];
// ...
randomDict = [theArray objectAtIndex:(rand() % [theArray count])];
NSString *name = [randomDict objectForKey:@"name"];
NSString *category = [randomDict objectForKey:@"category"];