>>22234663GTS is your friend. If you don't care about getting a living dex, you can often put up a Pokemon and ask for something of similar value in return. For example, a box legend for a box legend, a Moon Stone evo for another Moon Stone evo, or a trade item evo for another trade item evo. As long as the request isn't outlandish you'll usually get a match within half an hour.
For things that evolve by leveling up, get yourself 12 Blissey bases as favorites. GTS a mon you want to trade before you battle, and check it again when you're done with each battle.
I just got my Shiny Charm the other day, and I only had to trade with friends for around 10 of the mons. Don't give up!