100 chairs in a circle problem solving with Angular.js and visualization
Mathematical % simplification

Remember that $$a\  \%\   b == a  \ \ if\ b &gt; a$$

I don't know the math, but Python confirms:

&gt;&gt;&gt; import random
&gt;&gt;&gt; def random_ints():
    for _ in range(1000): yield random.randint(1, 100)
&gt;&gt;&gt; all(a % b == a for a in random_ints() for b in random_ints() if b &gt; a)
True


So:

    fireIndex += skipCount;

    //if fireIndex becomes greater than $scope.people.length, then set fireIndex to remainder from fireIndex / $scope.people.length
    if(fireIndex &gt; $scope.people.length){
      fireIndex %= $scope.people.length;
    }


can be simplified to

fireIndex = (fireIndex + skipCount) % $scope.people.length


Comments

Some comments are good, but you should avoid writing comments next to obvious code:

  if ($scope.people.length &gt; 1) { // if more than 1 people


It is already obvious from the code that you are checking if there are more than 1 people, the comment just doubles the effort required to change the code.

The below comment is very confusing instead:

if($scope.people.length &gt;= 1){ // if start button clicked again


Probably you changed the code but not comment.