Please god tell me theres a more efficient way to do this
local par = script.Parent
modes = {"FallDown","Spiral","Generic","SlideOpen","BlockFall","CollumnFall","Firework","FallUp","CheckerBoard","FallingCheckerboard"}
while wait() do
local picked = modes[math.random(1,#modes)]
if picked == "FallDown" then -- Fall Down
local color = BrickColor.Random()
par.p1.BrickColor = color
par.p2.BrickColor = color
par.p3.BrickColor = color
par.p4.BrickColor = color
par.p5.BrickColor = color
par.p6.BrickColor = color
par.p7.BrickColor = color
par.p8.BrickColor = color
par.p9.BrickColor = color
par.p10.BrickColor = color
par.p11.BrickColor = color
par.p12.BrickColor = color
end
end

4 comments
But there are MANY more parts in this model
If 'par' is your entire model, the for loop will take care of all the children that are of 'parts / unions' classes regardless of how many there are- which is why using for loops is efficient and time-saving.
He means there are a lot of parts that don't need to be colored in the model, I'll let you add that if statement :)
Oooh, I see. I was confused as to what he was trying to convey since the details wasn't specific enough for me. In that case, he could put the bricks he wants recolored in a model or table of their own and work from there.