Remember that events are executed from top to bottom.
If you have two following events with close conditions, if they both execute, you'll always have the impression that only the last event executed.
In that case, both event 3 and 4 fill the (0,0) cell of your array.
First event 3 does, and right after, event 4 overrides the value.
I'm not sure exactly what you're trying to achieve (as squiddster already mentioned) but atm, C2 executes the code the way the code is written, and it does what the current codes tells it to do.
If you want to make the value random, either don't use event 4, or put a random expression in the event 4.
Once again, not sure what exactly you're aiming for though.