Initial starting player - v2
Do without the ternary expressions: because a ternary expression is very good for initializing one variable, but is much less good for initializing two variables.

// Declared but not initialized (to null), in order to guarantee that
// they are each initialized in the subsequent if statements.
Player firstPlayer;
Player secondPlayer;

if (player_1.Active.CurrentSpeed &gt; player_2.Active.CurrentSpeed)
{
    firstPlayer = player_1;
    secondPlayer = player_2;
}
else if (player_1.Active.CurrentSpeed &lt; player_2.Active.CurrentSpeed)
{
    firstPlayer = player_2;
    secondPlayer = player_1;
}
else
{
    //Randomize who goes first
    ... etc ...
}