Random sized cylinders with no intersection/gaps
Here is a basic way you can fake it.



Create a new box mesh object that should be large enough to encompass a simulation covering an area big enough to produce the desired patterned area.

This Box would ideally be flat, narrow in one direction and large in two others (like say 10 x 10 x 0.2 units).

In the physics tab set it to Rigid Body, Passive and Shape two Mesh.



Then create a Cylinder mesh, rotate it in Object Mode 90º about the X axis so it lays flat. Set its physics properties to Rigid Body, Active and Shape to Cylinder. Make sure the physics bounds cylinder aligns properly to the mesh geometric shape.



Now add some constrains to it, so it won't rotate about an axis we don't care about. Add a new Limit Rotation constraint, then turn on the options Limit X and Limit Y only, and change the space to Local Space.



Clone-duplicate the cylinder around and place all copies in an array-like grid, along the top of the box, making sure they all fit completely inside the previously created box.



When seen from the top the cylinders should be tall enough to barely fit the box, and the box should be narrow enough so the cylinders are tight but not too close, which would cause problems with simulation precision.



To make cylinders have random size by selecting one of them, turn on Proportional Edit, switch the Fallow Type to Random, then scale one cylinder with S.

While scaling press Shift+Y to exclude scaling along the Y axis (so the cylinders all maintain the same height and still fit tightly in the box), and while editing scroll the mouse wheel to control the influence radius so it encompasses all cylinders. Make sure you hide or lock the box beforehand so it is not affected.

Adjust scaling as desired to create the amount of variation you see fit. Scale multiple times if necessary to achieve a larger range of sizes.



Now play the animation with Alt+A, to cache the physics simulation. You may also need to adjust the Rigid Body World properties in the Scene tab of the Properties Window, like increasing the Steps per Second and Solver Iterations.



Let it play for a while after falling, so the simulation settles down. The end result should be what you desire.

You can then optionally apply physics if you want static objects with actual position, or join them all into a single mesh. You may also remove one end of the cylinders so you get a "2D" flat pattern.