This one's tricky because of how mograph selections don't re-sort the indexes and only hides them. Scalar User Data: MoGraph ID Normalized > Change Range: 0 - 1 to 0 - # of polys in selection > MultiShader: Integer Loop. Only thing I can't figure out is how to procedurally get the poly count out of the scene nodes random select into the out max of the Change Range shader node.
Multishader Selection.c4d