I've been pin trading for several years and hopefully I can answer your questions:
Cast members are required to trade with you as long as you are offering them a Disney pin that is tradable (made of metal and enamel with a tie-tack back and the copyright Disney logo on the back) and they do not already have that pin on their lanyard. You give the cast member whichever pin you want to trade and get whichever one you like off of their lanyard (you choose the pin you give up). There are certain lanyards that only kids can trade off of (they were teal, but I don't know if that is the current color or not).
You may trade with other guests, but then you both have to agree to the trade. It is not permitted to exchange money for pins in the park (they have to be traded for), so you can't buy someone's pin outright.
There is pin trading at all of the parks. Resort gift shops are another place you can trade, and some stores. You can even trade at the
Disney Store in the airport.
You can buy pins at the park or get some before you go. If you have a Disney store, it can be cheaper to buy multi-pin packs before you go. You can also buy pins online. Mousepinsonline.com sells grab bags of pins for under $2 each and I've had good luck with them in the past. Ebay is another route you can go, but lots of fake pins are floating around there.
Good luck!