The programming guide states that if multiple threads try to write to the same address, only one write will succeed, but it is no guaranteed which one will.
If you issue writes to the same address from 10 threads in the same block, I think the order in which the writes arrives at the memory controller is determined, as least for the same type of GPU. Thus you can expect the result to be always the same. But if you use multiple blocks, the result may vary from run to run.