It's snowing in my consoles window!
JavaScript (ES6), 370 bytes
(S=(n,o,r=&quot;&quot;)=&gt;{for(i=0;i&lt;w;i++)o[i][0].pop(),o[i][0].unshift(0),Math.abs(n/4%2)&amp;&amp;(o[i][1].pop(),o[i][1].unshift(0));if(n&gt;0)for(i=0;i&lt;4;i++)o[Math.random()*w|0][i%2][0]++;for(j=0;j&lt;h;j++){for(i=0;i&lt;w;i++)r+=o[i][0][j]+o[i][1][j]&gt;0?&quot;*&quot;:&quot; &quot;;r+=`
`}console.log(r),n&gt;2*-t&amp;&amp;setTimeout(g=&gt;S(n-4,o),t)})(t=100,[...new Array(w=80)].map(i=&gt;[0,0].map(i=&gt;new Array(h=25).fill(0))))

Simulates with a multidimensional array, then plays it out. Could probably be golfed more.
Here's a slightly less compressed version:
(S=(c,v,o='')=&gt;{
  for(i=0;i&lt;w;i++){
    v[i][0].pop();v[i][0].unshift(0);
    if(Math.abs(c/4%2)){
      v[i][1].pop();v[i][1].unshift(0)
    }
  }
  if(c&gt;0){for(i=0;i&lt;4;i++){v[Math.random()*w|0][i%2][0]++}}
  for(j=0;j&lt;h;j++){
    for(i=0;i&lt;w;i++){
      o+=v[i][0][j]+v[i][1][j]&gt;0?'*':' ';
    }
    o+=`
`}
  console.log(o);
  if(c&gt;-t*2){setTimeout(g=&gt;S(c-4,v),t)}
})(t=100,[...new Array(w=80)].map(a=&gt;[0,0].map(b=&gt;new Array(h=25).fill(0))))