NestWhile[Rest@RotateLeft@#NestWhile[Rest @ RotateLeft @ # &, Range@10Range @ 10, Length@#Length @ # > 1 &]
{5}
FixedPoint[If[Length@#FixedPoint[If[Length @ # > 1, Rest@RotateLeft[#]Rest @ RotateLeft[#], #] &, Range@10]Range @ 10]
Edit
Historical note: As far as I can remember, Josephus roulette (a plain treason to his companions) consisted inof killing every third person.
FixedPoint[If[Length@# != 1, Rest@RotateLeft[#, 2], #] &, Range@10]
{4}
Note: The direction is important. RotateRight[]
will select another victim.