My way of doing it, which might still be a bit difficult, would be creating the objects from arrays with a single function.
It seems your layouts are grid-based, so recreating them inside an array to determine what goes where should be relatively easy.
Then just call a function to create a layout offscreen based on the grid of a random array..