One idea you could use to specify the neighboring countries is to keep the countries spaced and add roads between them. So a neighbor would be overlapping one of the same roads that overlap the source country.
Another idea would be to nix the roads and just use a text variable with a comma separated like of the uids of the neighbor countries. It's a lot more tedious to set up though. Could be simpler by making an in game tool to help do it.
Anyways got my example to simple game status. I don't think the odds are that fair somehow.
generating a map is trickier, mainly because we'd want it to look good. I've found a hand designed map usually looks better.
But here's one idea for the map generation, and selection of neighboring generated countries. The generation could be a lot quicker, it's mostly slow here because I only create one sprite per frame.
It looks pleasing enough, although islands are an issue sometimes. I guess you'd also need to place a border otherwise the winning player would have a Pangaea instead of many separate countries.
Anyways maybe some of that will give some ideas.