Is my arduino broken?

Nope - it's working perfectly.

The problem is that when nothing is connected to a pin, it's not HIGH or LOW - it's somewhere in between, so the arduino will read it as a random high or low value.

You need to do a bit of reading of "pull down" or "pull up" resistors - try searching the arduino site & forum and ladyada's site and forum.

It's probably worth going through all of ladyada's lessons here - Arduino Tutorial - Learn electronics and microcontrollers using Arduino!, but the one you are interested in at the moment is here - Arduino Tutorial - Lesson 5