Rubyで。

input.split.each{ |w| w.size<2 ? w : w[0]+w.scan(/./)[1..-2].shuffle.join+w[-1] }.join(" ")