SeedRandom[12345];
Dmin = 0.3;
Dmax = Pi/2;
Num = 150;
rand := {RandomReal[{Dmax, 20 - Dmax}, 2], RandomReal[{Dmin, Dmax}]}
randcircles = {rand};
While[Length@randcircles < Num, While[k = rand;
   Not[And @@ ((# + k)[[2]] < EuclideanDistance[#[[1]], k[[1]]] & /@ 
       randcircles)]];
  AppendTo[randcircles, k]];
square = {Opacity[0.05], Rectangle[{0, 0}, {20, 20}]};
Graphics[{Riffle[Circle @@@ randcircles, 
   Unevaluated[Random[] // Hue], {1, -2, 2}], square}]