I know some folks like to do random testing like this... but I honestly question the benefit in an automated situation. Computers like predictability. So, you're telling it to randomly click something... then what? How do you determine what happens next? And, if you need to reproduce a bug found during the automation, how do you know what was actually done?
If you're using NameMapping, you could map each of the buttons with a name something like "button1, button2, button3, etc". Then, use a randomizer math function for whatever code language you're using. Take the result of that function and do something like this.
var buttonID = randomizeButtonID();
var myButton = Aliases.MyApp.MyForm.WaitAliasChild('button' + buttonID, 500);
if (myButton.Exists) myButton.Click();
Robert Martin [Hall of Fame] Please consider giving a Kudo if I write good stuff ----
Why automate? I do automated testing because there's only so much a human being can do and remain healthy. Sleep is a requirement. So, while people sleep, automation that I create does what I've described above in order to make sure that nothing gets past the final defense of the testing group. I love good food, good books, good friends, and good fun.