HTML / JavaScript, 156 123 (143 - 20)
<body bgcolor=0 onload="t=c.getContext('2d');t.fillStyle='#07d';setInterval('n=Math.random()*4e4;t.fillRect(n%270,n/150,1,1)',1)"><canvas id=c>
Testable version in JSFiddle.
Preview:
<body bgcolor=0 onload="t=c.getContext('2d');t.fillStyle='#07d';setInterval('n=Math.random()*4e4;t.fillRect(n%270,n/150,1,1)',1)"><canvas id=c>
Annotated version:
<body bgcolor="#000">
<canvas id="c"></canvas>
<script>
onload = function() {
// Retrieve the rendering context
t=c.getContext('2d');
// Set rain color
t.fillStyle='#07d';
// Render whenever it is possible
setInterval(function() {
// Generate a number between 0 and 40,000
// 40,000 ~= 270 * 150
n=Math.random()*4e4;
// Draw a raindrop.
// Since x and y are not rounded, the raindrop looks blurry!
t.fillRect(n%270,n/150,1,1)
}, 1);
};
</script>
</body>