Why do you only call rand() in play_again()?

I think you need a "play_game()" function, that picks the target, then loops while the user enters guesses.

So you have a upper-level function that calls play_game() then askes if the user want to play again, and the inner function that is actual game logic.