No soy una persona de postgres pero... lo intentaría
Movie.connection.execute "select setseed(0.5)"
Movie.where(...).order('random()').page(params[:page]).per_page(15)
Con respecto a Array#shuffle
no tomando una semilla, usa Kernel.rand
para que pueda sembrarlo usando Kernel.srand