So I downloaded Pokemon Duel on my phone & each time you open a pack you get "material", which you can save and then trade in for a specific figure.
Why don't EA do this? With each pack you buy, you earn 10 "balls", and players could be priced based on card rarity, so non rare golds would cost 100 "Balls", rare golds would cost 250, informs 500 & legends/ TOTY 1000 "Balls".
To prevent abuse of the system, all cards earned this way would be non tradable.
This system would encourage more pack sales to those demotivated with never getting who they want, & would also reward the players who fund EA through pack sales.