I found having atleast one deck with each type of pokemon helped, i already had power play and toxic shock decks that i brought in RL so had a code for them,
But as your against different deck types, its helps to learn what cards have what weakness, that way you can play accordingly, a quick google search can help with that problem,
Im currently using a system of buying decks in the store with pokemon types im missing so i am better covered in the verses battles, as for the trainer challanges, you have to play and win to earm a completed deck.
Once you have won all the required battles for a deck in trainer, it becomes available in verses.
for example the basic decks you start playing with are incomplete, short by 7 cards, some energy, some trainer and some stage 2 Pokémon, the more you win with them, the more cards are given as rewards to complete the deck.
The only way to gain a new deck type for free, is to play in verses for a bit and grind for some coins to redeem another deck in the store, then you can complete your trainer challenges and earn booster packs for creating your own deck.
Hope this helps,
side note, have a look online, people are always selling Online codes from decks that they don't need, but double check it is for a deck and not just booster packs, made that mistake a few times