How do you program biomes as in minecraft, i.e. With structures such as hills, mountains, villages, trees, etc?
Based on the seed.
You take the seed and use it to create a height map. This takes care of the hills. Since normal hills are not perfectly round, you make a second height map, which ensures unevenness.
Most of the trees and villages are already prepared and are placed on the basis of the seed when the map is generated at random positions determined by the seed.
If you want to know everything exactly, I recommend Hopson's "Lets Code a Voxel Game":