It doesn't work: let's take 4 people and they vote for two choices "1" or "2".
I cheat when I give people their random numbers: A gets 5, B gets 5, C gets 7, D gets 11.
Now they all cast their vote: A -> 1 B -> 1 C -> 2 D -> 2
Let's tally the votes, the result for choice 1 is 5 and the result for choice 2 is 77.
A checks that its vote has been counted 5%5 == 0 so it's good. B checks that its vote has been counted 5%5 == 0 so it's good. C checks that its vote has been counted 77%7 == 0 so it's good. D checks that its vote has been counted 77%11 == 0 so it's good.
For everybody the result appears to be one vote for choice 1, 2 votes for choice 2 and 1 abstention, your scheme does not detect any wrongdoing here.