I have a system that I use for monster tokens which requires polyhedral dice: line the monsters up in rows of ten. Then, whenever you need to draw a monster, count the number of rows and roll the die with the fewest sides that still has a number of sides equal to or greater than the number of rows. If you roll higher than the number of rolls, reroll. Otherwise, roll a ten-sided die to determine the specific monster. If you roll higher than the number of monsters in the row, reroll both dice. I tend to shift the monster back (or just relocate the last monster in the last row) to plug any empty spaces that appear. I made this system because I'm a real stickler for randomness, and yes, I'm aware that I have issues. It works surprisingly well, the only issue being that monster surges take a while to work out. But then, monster surges aren't all that common when you play with all expansions….
Of course, now that I think of it, you would need a lot of space to use this method with the figures, since some of them are so large.