Nie postgres, ale ... spróbowałbym
Movie.connection.execute "select setseed(0.5)"
Movie.where(...).order('random()').page(params[:page]).per_page(15)
W odniesieniu do Array#shuffle
nie bierze nasiona, używa Kernel.rand
więc możesz go zainicjować za pomocą Kernel.srand