It's always the same result, or sometimes you get the same result twice in a row? Getting duplicates in a row is not surprising - if you flip a coin 30 times, you'll see a lot of HeadHeadHead and TailTailTail.
If you want to get rid of dupes, you'll have to keep track of what the last item chosen was, and pick a new item if you pull a dupe. We could do this with a "do-while" loop.
Code:
- (IBAction)hello:(id)sender {
//"static" means this variable will keeps it value between function calls.
static int lastChosen=0;
//this is the same
NSArray *myArray= [NSArray arrayWithObjects: @"Yes",@"No",@"Maybe", nil];
int length = [myArray count];
int chosen;
//this is a "Do" loop - it repeats as long as the "while" is true.
//we'll keep picking numbers until we get not-a-dupe
do {
chosen = (float)random() * length /RAND_MAX;
} while(chosen==lastChosen);
//this is the same
NSString *item = [myArray objectAtIndex: chosen];
//this is how we combine the two strings
helloLabel.text = [NSString stringWithFormat: @"The item I picked is: %@", item];
//save the value for the next function call
lastChosen=chosen;
}