In terms of getting a random world that works, this can be done by programming an algorithm that matches objects, and graphic tiles together based on a set of rules to generate random maps. You would have to have rule sets in place that allow certain tiles to generate around each other with objects based on valid conditions based on their layers. For example, if you have a land tile, water tile, and bridge tile, you wouldn't want something like water, bridge, water, land, bridge, water, water, bridge (from left to right) on layer 1 if your object tiles on layer 2 are house, sewer tunnel, ladder, dock, ect... and they're unable to support those tiles, and your player cannot travel properly through those settings. I'm afraid this is far beyond beginner game development.
You can also do this with batches instead of single tiles for the maps to make it easier. You pretty much make small chunks of the map that can fit together like a puzzle that generally work together in any order. Layer 1 would be your graphical tiles, and Layer 2 would have interactive stuff, objects, ect... You can also make different variations of Layer 2 which can go on top of your Layer 1.
Layer 1
Batch one - Land, Land, Land, Land, Hill, Land
Batch two - Land - Small Bridge with Water Under - Land - Hill - Land
Layer 2
Batch one variation 1 - Road, Road (Trees), House, Empty, Hill Cave (Trolls), Empty
Batch one variation 2 - Road Block (Bandits), Tent, Burned Down Convoy, Road with Sign, Hill Path, Road
Batch two - .....
ect...
Then you can just set each batch to a number in an array, and randomize certain batches that match the environment change to render your random map.
Layer 1 [ 1, 5, 6, 2, 1 ] Layer 2 [ 1, 5, 6, 2, 1 ]
I cannot comment on what would be a good combat system because this answer should really come from you. Think about some games you've played, which system did you like? You can always port that combat system into your game.
I strongly suggest you get a few basic games under your belt before making the dream game, the last thing you want is to hit a brick wall and completely become discouraged and quit. If you're not really into the programming aspect, you can still make games using drag and drop with Game Maker as well.
https://www.yoyogames.com/gamemaker