If, on every Character Object you have a variable "Speed", then you can use the System event "Pick by comparison", or "Pick lowest/highest". This will let you select the one with the highest speed, and with a "flag" variable, saying if he has already played or not.
Here, this is what the events would look like.
This should all be put in a function you would call "next Character activation", or something like that, as you sure will need to wait for the player to choose an action before going to the next character.