Code Golf: Gibberish Echo
CJam, 31 27 bytes

l:I{mr[_I]{_,((,\f&gt;3f&lt;}/&amp;}g


Test it here.

Same approach as my Mathematica answer. It keeps generating random permutations of the input, until the substring restriction is satisfied. I think this can be golfed a bit further.