Here is a slightly different way of going about it:
BlockRandom[SeedRandom[42, Method -> "Rule30CA"]; (* for reproducibility *)
pts = RandomReal[{-1, 1}, {50, 2}]];
With[{h = 1/5 (* offset *), n = 30 (* iterations *)},
Graphics[{FaceForm[], EdgeForm[Black]EdgeForm[AbsoluteThickness[1/5]],
NestList[# /. Polygon[p_] :>
Polygon[Transpose[Partition[p, 2, 1, 1], {1, 3, 2}].
{1 - h, h}] &,
MeshPrimitives[VoronoiMesh[pts], 2], n]}]]
This version incorporates Rahul's suggestion to randomize the rotation directions:
With[{h = 1/5 (* offset *), n = 30 (* iterations *)},
BlockRandom[SeedRandom[42, Method -> "Rule30CA"]; (* for reproducibility *)
pts = RandomReal[{-1, 1}, {50, 2}];
Graphics[{FaceForm[], EdgeForm[AbsoluteThickness[1/5]],
NestList[# /. Polygon[p_] :>
Polygon[Transpose[Partition[p, 2, 1, 1], {1, 3, 2}].
{1 - h, h}] &,
Map[RandomChoice[{Identity, Reverse}][#] &,
MeshPrimitives[VoronoiMesh[pts], 2], {2}], n]}]]]