Button3 is the "Play Again?" button. Everything that the program does to "play again" must be done when the program first starts. So the only statement in this subroutine, Button3_Click(sender, e) simply executes the Click event subroutine for "Play Again?". What's sender, e ? These are parameters that are passed from Windows to the Load event (this subroutine). The Click event also requires these parameters, so the Load event just passes them on.
You could just repeat the code in the Click event rather than calling it and that would be a perfectly good way to write the program. But I thought that doing it this way would make a good programming point for you to study.
While we're talking about the Button3 (the "Play Again?" button), notice when you run the program that the text displayed on the button changes while you're running the program. But if you examine the code, you won't see where the property - Button3.Text - is ever changed.
This is done by making two components ... Button3 and Button1 ... exactly the same size and placing them one on top of the other on the form. Then the effect of changing the text on the button can be achieved by changing the Visible property of Button3 and Button1. The advantage of this is that VB.NET will ALSO execute a different Click event depending on which is visible. And that's exactly what I want the program to do in this case.

