It's easy to generate random lines, such as this
n = 8;
lines = InfiniteLine /@ RandomReal[1, {n, 2, 2}];
points = RegionIntersection @@@ Subsets[lines, {2}];
Graphics[{lines, Red, points}, PlotRangePadding -> Scaled[.2]]
If there are more lines, some of the points of intersection between them will be very close

But I want to get something like this

This means making the distance between the intersections and and the angle between the lines as uniform as possible. I thought of a brute force method, very slow, is there a more efficient method?
n = 6;
(Label["begin"];
lines = InfiniteLine /@ RandomReal[{-1, 1}, {n, 2, 2}];
intersectionPts = First /@ RegionIntersection @@@ Subsets[lines, {2}];
If[! AllTrue[EuclideanDistance @@@ Subsets[intersectionPts, {2}],
0.2 < # < n &], Goto["begin"]])
EuclideanDistance @@@ Subsets[intersectionPts, {2}] // MinMax
Graphics[{lines, Red, Point@intersectionPts}, PlotRange -> All,
PlotRangePadding -> Scaled[.1]]

