I just saw this amazing video that shows procedural raindrop effect using a node setup in EEVEE, created by this person. It's not possible to see the node setup from the video. So I wonder if someone knows how to create a node setup that does what's being shown in the video.
Use a Voronoi texture node to control roughness and normal (bump). Use a mapping node to stretch the texture in z-axis and animate the z-axis location to make the rain drops run down the sides:
On top of this, try to experiment with a noise texture to modulate the x and y axis to make the drops go down in a not so straight line.
Note: This approach only really work well on cube-like geometry with rounded corners.
EDIT: I worked further on this and with inspiration from Eris answer I updated the setup to the following:
The two voronoi textures are animated independently to make two sets of raindrops of slightly different sizes and speeds.
Even though I used Eevee for the above example, this works perfectly fine with Cycles as well. The first example was made using Cycles in 2.79, the second with Eevee in a recent 2.8 build.
Here is the .blend-file (Note: this is a Blender 2.8 file):