Question 1: How can I improve the randomization of 3 different possibilities.
There is a package called
java.util.Random that will help you with pseudo-random numbers. In particular, check out
nextInt(n).
You can easily use this to generate a random integer in a given range. Just be sure to check out what 'seeding' a random number generator means (google), otherwise you will get the same set of results each time you run the program.
Personally, I prefer to generate a full random primitive and use the modulo operator to trim it to size (read up on modulo because it is useful for all kinds of reasons).
Question 2: How can I improve all the if statements, just throw out some google keywords if you like.
You could have used string concatenation to solve this without so much typing. Consider, you only need one little bit of logic to say "Computer choose xxx" and another separate bit of logic to say "you win" or "you loose". Semantically this way is identical to the way you have done it but it is cleaner and displays a better understanding of logic.
A good exercise here would be turn the check for win/loss into a function that returns true/false. Also, I would take a look at the many, many ways in which this code can fail:
if (choice.equals("rock"))
What if I type "Rock" or " rock" or "rock " or "rrock". I would go for a menu choice where the user has to press '1' '2' or '3' and asks them to try again if the input is bad.