How to make endless ground

Hey. I am making a game where you are staying in a train, while it is moving. To not waste much resources, and make the world more variable, i want to make some sort of procedural generation of the ground under the train.

So basically, the train is static, while landscape under it is moving backwards, making an illusion of movement, if you look from the inside. Land in front will randomly generate, using complex criteria, and as it passes the window, it will disappear. How can I make that?

I would probably keep the train still and then spawn tiles in front of the train that move past it and eventually despawn, creating the illusion of moving forward.
I don’t know how to make it be procedural though, I would probably make varied tiles and then spawn them in a random order, creating enough variation that you won’t think too much about it.
I guess it depends how much the game is about actually looking out the window, if it’s just meant as background I think it could work well enough?

well, the game is actually about sitting in a train and drinking tea, meanwhile talking to other passangers. So the backround is important. Thanks for the help though