Blazingwolf wrote:
Now I am having a hard time figuring out how I can get the program to randomly choose a letter that is correct and hasn't been chosen yet. Some hints, clues, pseudocode or code would be appreciated.
Not sure what you really expect, but here is how I would do it (and sorry, but I didn't read your code - just throwing out an idea here

).
First you must store the hidden/uncovered letter status of the word somewhere (I'd choose a 32 bits (or 64) value for exemple, each bit marking a letter status : 0 = hidden, 1 = uncovered).
Now let's call N the number of hidden letters of the word.
Of course, each time the player 'uncovers' a new letter, lessen N by 1 (or 2, or 3..., depending on how much time this letter appears in the word), and 'mark' the bits of the hidden/uncovered letters status variable.
Now, when you need to 'randomly choose a letter that is correct and hasn't been chosen yet', pickup a random number between 1 and N.
Then use this number to search for the nth hidden letter in the word (by searching for the nth 0 in the hidden/uncovered letter status variable, then 'selecting ' this letter (for exemple you picked up an 'e') and uncovering all of its apparance in the word, and finally lessen N by the number of letters you uncovered.
Edit : my method is 'bad', because if you have for exemple 3 'e' and one 'r' still uncovered, the 'e' will get higher changes to get uncovered, and I guess both letter should have the same chances. I'll add another way to do it.
Ok here is it :
Use a 32bits value which bits will store all the letters of the alphabet.
Then flag the bits of the 'not in the word' letters to 1, and calculate how much different letters the word have (= N).
When a letter is uncovered, set its bit to 1 and decrement N.
Now, when you need to pickup a random letter to uncover, get a random number R from 1 to N, search for the Rth 0 you find in the 32bits value, set it to 1, uncover the letter you choosed, and decrement N.
That way each letter will have the same chances of appearing, making the game 'harder' (because with the other method, making the more appearing letters have more chance to be uncovered might just make things too easy).