Update for 1.8 and after
Update 1.8 added a 1/16 meter high hitbox to carpets, which made natural mob spawning on carpets impossible. Carpets are now safe.
Thanks @TomášZato for bringing this up!
(There still are some types of "unnatural" spawning that are able to force mobs into carpets, like Village Sieges.)
Before 1.8
Carpet both does not prevent and does not facilitate mob spawning, but it does help in a way.
Carpet is a non-solid block, so, in terms of algorithm, mobs do not spawn on carpets, but rather in. Basically, you can replace all carpets with signs for the same, but more obvious, situation.
Mob spawning alrotihm, simplified, is the following:
- Pick a totally random place (in 3D, not only on the surface) to spawn a pack. It must be a block of air (not carpet).
- Try to spawn several mobs around the pack on the same height. Block underneath must be solid, and the block mob spawn in may be any non-solid block, like a carpet.
What it means regarding carpets: if you have a level floor in a room, and room is surrounded by solid stone, no mobs will spawn even in the dark, as there are no air blocks on floor level. If you have a building surrounded by air, though, mobs will be able to start spawning outside and "leak" onto your carpet floors.
So, glass floors are as safe as they ever were.
Detailed algorithm is on the wiki.
Best Answer
Yes, you can do it as they say, but you can automate it.
You will need some redstone mechanism to delay spawning or actually start it (button). That is on you, how fast commandblocks got executed (you can use buttons for every wave or redstone clock or repeaters or something even slower - two hoppers with comparators or so. You need to know something about redstone for this.
Second, you need command blocks. Alternative is to use dispensers with spawn eggs, but commandblocks are more fancy.
How to actually setup them? Yuu can use this page: http://www.minecraftupdates.com/summon-command
You can setup with them spawners - for constant spawning (for stopping it you need commandblock to delete the spawner) If oyu want to start it by pushing button, then the button has to trigger CBs that generate the spawners.
Or you can do /summon command for summoning one monster at time. Then you need more command blocks, so it will be more redstone size. However you can select the place where the monster will be summoned etc.
The positive of mentioned page is that you can define more values in dropdown menus, armors, potion effects and so. Also traps like primed TNT are possible. Thus, your arena can offer really challenging fight, like skeletons in diamond armors or invisible blazes!