They are completely random! Even the pairings are random! It's pretty rare for any two cards to be the same in a playthrough. A little bonus feature is that the 'name' of each upgrade is actually generated by the game based on the two upgrades chosen!