I had a quick look - here is one way to think about it. Since you’re looking for exact measurements, it’s easier to use SurfaceSplit - you could map these lines to the surface domain, but it seems like a redundant step and you have all the information needed to make the pattern by this point already. You can play with the randomness by adjusting the seed value of the random components - the first Random generates seed values for the second Random which then picks the allowed distances from the list - to make it easier I just generated more numbers than needed rather than making the distances fit within the total - this does mean that some of the pieces are non standard sizes (blue tiles)