Suggestion:
Get it to use prefabs, make a set of vmfs of modular pieces, then get your program to load them in, and distribute them randomly, this way you can generate equally random, but vastly more detailed environments with minimal extra work. As long as you make the origin of each prefab in a logical place, your program should easily be able to take the co-ords within the prefab vmf and translate them to the desired locations.
Once you've done that, get to work on displacements
If I still knew any useful languages I'd get to work on something like this but alas I no longer have a copy of blitz basic and know not any other languages.
Get it to use prefabs, make a set of vmfs of modular pieces, then get your program to load them in, and distribute them randomly, this way you can generate equally random, but vastly more detailed environments with minimal extra work. As long as you make the origin of each prefab in a logical place, your program should easily be able to take the co-ords within the prefab vmf and translate them to the desired locations.
Once you've done that, get to work on displacements
If I still knew any useful languages I'd get to work on something like this but alas I no longer have a copy of blitz basic and know not any other languages.