Me and my friend had a look at this and tested it out.
_randomtarget = ["q1","q2","q3","q4","q5","q6","q7","q8"]; [color="#FF0000"]// q1, q2 etc. is the player name that we gave the characters[/color]
_target = _randomtarget select (floor (random (count _randomtarget)));
if (side player == civilian) then {hint format["Your target is %1",_target];};
This is the single player code that we got working, It defines who "_randomtarget" is and then assigns a unit to it.
However the code you had before,
_randomtarget = playableUnits;
_target = _randomtarget select (floor (count _randomtarget)));
if (side player == civilian then {hint fromat["Your target is %1, _target];};
Works in multiplayer if there are AI or humans spawned in as the characters.
One problem with the script, it doesn't redefine the target when a target is killed. We tried getting around that problem with this:
if (_randomtarget !alive) then {hint format["Your target is %1",_target];};
It didn't work :(