Using GridGraph with random EdgeWeights and FindHamiltonianPath
We modify the PathGraph induced by the HamiltonianPath by adding/deleting a random number of edges (controlled by options "NewEdges" and "DeletedEdges") so that, as in Red Meander, the resulting graph may have cycles / multiple connected components / vertices with vertex degree exceeding 2. Using @ydd's suggestion in comments we perturb vertex coordinates by a small random amount (controlled by the option "Wiggle") to get a more natural look.
ClearAll[albersMeander]
Options[albersMeander] =
{"Wiggle" -> .03,
"NewEdges" -> 10,
"DeletedEdges" -> 5,
EdgeWeight -> Automatic,
VertexSize -> 0,
VertexShapeFunction -> ({} &),
EdgeStyle -> Directive[Opacity[1], AbsoluteThickness[8], Darker@Red],
Background -> Lighter[Brown, 2/3],
ImagePadding -> 10,
ImageSize -> 300};
albersMeander[dims:{__Integer}, opts:OptionsPattern[{albersMeander, Graph}]] :=
Module[{pg$, newedges,
g$ = GridGraph[dims,
EdgeWeight ->
(OptionValue[EdgeWeight] /. Automatic -> {e_ :> RandomReal[]})]},
pg$ = PathGraph[FindHamiltonianPath[g$],
VertexCoordinates -> {v_ :>
GraphEmbedding[g$][[v]] + RandomReal[OptionValue["Wiggle"]]}];
newedges = RandomSample[
DeleteCases[EdgeList @ g$,
Alternatives @@ Join[EdgeList @ pg$, Map[Reverse] @ EdgeList @ pg$]],
OptionValue["NewEdges"]];
Graph[EdgeAdd[EdgeDelete[pg$,
RandomSample[EdgeList @ pg$, OptionValue["DeletedEdges"]]],
newedges],
FilterRules[{opts}, Options[Graph]],
FilterRules[Options[albersMeander], Options[Graph]]]]
Examples:
SeedRandom[1];
Row[Table[albersMeander[{25, 20}], 3], Spacer[10]]

Do not add/delete any edges, set EdgeWeights to 1 for all edges and play with the option values for "Wiggle":
SeedRandom[1];
Row[Map[albersMeander[{25, 20},
EdgeWeight -> {e_ -> 1},
"Wiggle" -> #,
"DeletedEdges" -> 0, "NewEdges" -> 0,
EdgeStyle -> Directive[Opacity[1],
CapForm[# /. {0 -> "Square", _ -> "Round"}],
AbsoluteThickness[8], Darker@Red]] &] @ {0, 1/10, 2/10},
Spacer[10]]

Play with different values for "DeletedEdges":
SeedRandom[1];
Row[albersMeander[{25, 20},
"DeletedEdges" -> #,
"NewEdges" -> 0] & /@ {0, 5, 10, 20},
Spacer[10]]

Play with different values for "NewEdges":
SeedRandom[1];
Row[albersMeander[{25, 20},
"DeletedEdges" -> 10,
"NewEdges" -> #] & /@ {0, 5, 10, 20},
Spacer[10]]
