generateRandomMaterial
Generates a random material from all valid procedural materials, ignoring tier restrictions. Used by the skill-based shop system to first pick a material, then determine level based on player's skill.
Return
A random valid material, or null if none available