Você está executando comandos sequencialmente, então o shell executa irb , aguarda até que irb seja fechado e execute o próximo comando (no seu caso require 'random_utils.rb' )…
O que você deseja é fornecer o script para irb via STDIN
irb <<EOF
require 'random_utils.rb'
a = SuccessChecker.new
EOF
Mas isso provavelmente não fará o que você quer, pois irb é para uso interativo; você deve considerar o uso do seu interpretador Ruby normal, por exemplo:
ruby <<EOF
require 'random_utils.rb'
a = SuccessChecker.new
EOF