This is implemented using the factory pattern and scriptable objects to hold the data for the cards. Cards pulls are calculated using true to life odds and then set to the correct rarity position. I am currently working on implementing holographic shaders using ShaderGraph.