The nextInt() method leaves the \n (end line) symbol and is picked up immediately by nextLine(), skipping over the next input. What you want to do is use nextLine() for everything, and parse it later:
String nextIntString = keyboard.nextLine(); //get the number as a single line
int nextInt = Integer.parseInt(nextIntString); //convert the string to an int
This is by far the easiest way to avoid problems--don‘t mix your "next" methods. Use only nextLine() and then parse ints or separate words afterwards.
Also, make sure you use only one Scanner if your are only using one terminal for input. That could be another reason for the exception.
Last note: compare a String with the .equals() function, not the == operator.
if (playAgain == "yes"); // Causes problems
if (playAgain.equals("yes")); // Works every time