I've found the reason why this is happening, but it doesn't really help
By the time Zend_Controller_Action::dispatch is called, if the path is formatted as 'player-random' the action is 'playerRandomAction', but if the path is 'playerRandom' the action is 'playerrandomAction' which doesn't exist. It looks like the inflector acts on the path in the opposite way I expected (?).
So, as far as I can tell, that is how it is supposed to work. The path should be formatted as 'player-random' and that is converted to 'playerRandomAction'.
If anyone else has a better understanding, please let me know. Thanks.