General note when I have tested in JavaScript in another module. Using array.splice() pops an item from the array, but doesn’t change the original size of the loop, so oddness can happen. I do something like this:

Because i is still moving forward as an index and you shift the elements down one, the index doesn’t know this and can skip over an entry. As you see above, I remove position 3 then ‘4’ and ‘5’ are also skipped. This is because the index (i) doesn’t know to go back one. If you traverse backwards, not an issue. Since I see you are checking currentAdventure.survivors[i] after the splice, you may be skipping an entry.

Notice the second loop, going backwards, how only one number is skipped.

Just something you should test for and make sure it is working as expected.