in reply to Replace strings with []

I believe another option is to use \Q and \E in your regular expression.
This will "quote (disable) pattern metacharacters till \E":

$str =~ s/\Q$_\E/$random{$_}/g;