There are any number of algorithms for generating random maps, most based on some type of noise function to generate a height field, plus some sort of basic climate modeler. Those are typically implemented in a grid, but you CAN convert from a grid to hexes fairly easily:

- starting with a square grid:
LLLLLLL
LLLLLLL
LLLLLLL
LLLLLLL

- combine adjacent cells in each row, either by averaging or just doubling every other cell horizontally, offsetting every other row:
L_L_L_L_
_L_L_L_L
L_L_L_L_
_L_L_L_L

- This "subway-tile" grouping can has a hex connected topology and can be directly mapped to select your hexes.

The only "trick" is to scale the original noise function on one axis so the resultant hexes are regular hexagons rather than flattened hexagons.

-Rob A>