Boo! A Halloween Code Golf Challenge Write a program that takes an input string of length 2 or more characters and adds the string  ~BOO!~  (that string has a leading and ending space) in a uniformly random spot in the string that is not on either end.



Disallowed sample inputs: 2 or   (an empty input)

Disallowed sample outputs: Hello ~BOO!~  or  ~BOO!~ Hello for the input Hello

Sample input: Hello, World!

Sample outputs: Hel ~BOO!~ lo, World! or Hello, Worl ~BOO!~ d!



This is code golf, fellas. Standard rules apply. Shortest code in bytes wins.



Congratulations to Dennis for having the shortest, spookiest program! Happy Halloween!
Pyth, 19 18 bytes

j" ~BOO!~ "cz]OtUz


Thanks to @Jakube for golfing off 1 byte!

Try it online.

How it works

                    (implicit) Store the input in z.
                Uz  Compute [0, ... len(z)-1].
               t    Remove the first element.
              O     Select an integer, pseudo-randomly.
             ]      Wrap it in an array.
           cz       Split the input string at that point.
j" ~BOO!~ "         Join the split string, using " ~BOO!~ " as separator.