Answer:
Spam can come from many different sources. There are third party's that can sometimes acquire your email address from legitimate websites. You can get them from entering your email address into offers for "free" things. These are the most common two ways you receive spam. You can also get spam because people learn your email from a program that allows them to pull other peoples contact lists.
The best way to prevent spam is to only give your email address to websites where their Terms of Service state they do not sell your email addresses to other websites.