Well, in C, you use the 'rand' function to generate random numbers (which is usually how you do everything random in a roguelike). However, unless you use the 'srand' function, your results will always be the same, because the rand function needs to be "seeded" (I think that's what it's called).
This is were seeds come in. The rand function plugs that seed into a pseudo-random number generating algorithm. The srand function gives the rand function a seed to work with. The most common use is "srand( time(NULL) )", which plugs the current time in as a seed (this ensures that the seed is always different).
You could, however, ask the player if they want to input a specific seed. (Have them type in a string, called it char seed[10], then use "srand(seed)") If they input the same seed twice, then the number generating algorithm will churn out the exact same numbers twice, giving you the same map.
I don't want to make any kind of wilderness or cave, since those generate mainly with fractals or algorithms. I'm talking about creating a wall at a random place. Or making a road go 20 tiles north and then go 8 tiles west.
The wilderness and cave structures can also be generated through seeds (I made a cellular automata dungeon with seeds and the rand function). It's all about how creative you are.
Creating a wall at a random place: Seed the RNG with a specific string, tell it to pick a number between 1 and 100. As long as you use that exact seed, you will always get the same number. Instead of telling it to pick a number between 1 and 100, tell it to pick two numbers to use as coordinates, then place a wall there.
Making a road go 20 tiles north, then 8 tiles west: If you mean you want it to go exactly 20N then 8W, it's more reliable to do that manually. However, if you mean just random directions/lengths but always the same due to seeding, then do the same as "creating a wall at a random place." Tell it to pick a number between 1 and 4 (North, East, South, West), then a length. Do that a couple times, and you get a road that goes in a few random directions. Use the same seed again, and you get the same road.
Summary:How would you translate this into roguelike where you are mainly picking a random point in the level and adding assets there?
Seeding is all about giving the RNG something to work with. If you give it the same seed twice, you get the same results twice. If you give it the same seed each time you start the program, all the random points you pick will be the same each time you start the program, due to the magic of seeds.