The random number generation algorithm is just an opperation that takes a number, and create another number from it.
The seed is the initial number of the series.
This is a very good system as, as for the same SeeD, you get the same sequence, which can sometimes turn is a very useful property. Then you get "controllable" random numbers.
A very good example of this is the game Fire Emblem. During battles, it is determined randomly if you land a critical hit, or if you miss your attack.
Also you are allowed (in fact forced) to save the game on all your moves. If something bad happens (for example you miss an enemy and then he lands a critical hit on you, killing your unit), you can turn the console off, and restart from your saved game which is just before the fight.
However Nintendo were not stupid, and when saving your game they also saved the state of the random number generator. That way when you resume your save, the exact same random sequence will happen again, and you will again miss the enemy, and he will again land a critical hit, again killing you.
If the numbers would have been actually random, this could not have been possible - that is all players could cheat by restoring their saves and never being killed. I've tried this on my first FE play though of course ^^
For a normal utilisation of a RNG (you want actual random numbers) it's standard practice to seed the RNG once at startup and then never seed again. If you want the numbers to be different on every run of your program it's common practice to use the system time, on the other side if you want the random sequence to be the same no matter who runs your program, you should seed with a numeric constant, such as 150. It's also possible to rely on user input to make up for the randomness : Video game systems does not have a system's time, but it's common practice to seed with 1 (or any constant) and to call the random() function on each frame at title screen, that way the time spent on the title screen (which is random) "seeds" the generator.
Also it's imporant to always use less bits than what the internal state of the RNG is made of. Why ?
Because the random generator will always generate the same sequence for the same numbers. If you want for example a 8 bit random number, and use a 8 bit RNG, you will NEVER have a sequence like this :
... -> 152 -> 3 -> 89 -> 204 -> .... -> 152 -> 4 -> ...
Because if a '152' is followed by a '3', then it means ALL '152's will be followed by '3's.
To fix this problem, you can use for example a 16 or 32 bit RNG, and use only the upper (or lower) 8 bits.