Another pure shader (i.e. the only inputs are time and pixel position). The drops are positioned randomly each time they appear using unaligned grid sampling. I wrote an article explaining how this shader works here.