There's 2 easy ways they may have done the lottery results. Let's say X is the number of entries.
- Roll a random number from 0 to X-1, then add 1 to the result to get the winning entry
- Roll a random number from 1 to X. The result is the winning entry
The first is based on an index of 0 (how most programming languages like to count), and the second an index of 1 (how we like to count).
Each one has its own unique way to screw up like it did today.
- They forgot to add the 1 back in, meaning the last entry is entirely omitted and an empty 0 entry is added
- They forgot to change the index to start at 1, so they picked a random number from 0 to X instead. All entries may still be selected, but there's also an empty 0 entry included
If it's the first case, then technically if entry Y won then it was really Y+1 that won. But I don't think it's fair to, say, take the house away from Y and give it to Y+1. They had an equal chance of winning, and there's no significant meaning to their position in the entry array because the result is random. The only entry that's really screwed is the last one because they weren't even included in the drawing, and you could potentially resolve that by giving the house to them if it rolled a 0.
If it's the second case (which seems more likely as I'm sure someone with the last entry has won a house) then all the entries are still in the same position in the array. They all had the same chance to win, and the winner won it fair and square. You only had one extra empty entry 0, which had a 1 / X+1 chance of winning same as everyone else. If 0 did win in this case, then the best option would probably be to simply re-run the lottery with the same participants.
Or, maybe they're doing something really weird with this lottery and neither of these scenarios fits. Regardless it seems like the best thing to do is to let winners stay winners, and re-run the lottery for any plots which sold to "0".