Aha! The randomness is caused by a pattern potentially being valid in multiple combinations so one is picked at random. Only the top rule of the last one I posted is sufficient to get that sort of behaviour.