When Test cases are assigned to testers in Test Lab it becomes testers responsibility to run them as assigned. Note Planned tester against a test case is which will determine which tester it was actually assigned to. But actual tester who executed the test case can be found by Executed by actual. Generate a report to see what was planned tester and what was actual for the test execution. There might be some pre-requisites or some other reason a tester might have taken up the test cases which they were not assigned to and have executed them.
Actually there's 2 kind of problem:
1. Technical. Testers saw other test sets and decided to run them It could be solve by filters by "Responcible Tester" - each tester should get his own filter and he won't see other test set in the future. Also you could add workflow code that will show Warning Message if tester runs test set that doesn't belong to him.
2. Human problem. There's reason inside your emploeers that force one tester make job of other. It could be anything - one of the testers wanted to get home earlier, or therte's a hot QA-girl... In any case, this problem should be solved on mahangers level.