Non una persona postgres ma... ci proverei
Movie.connection.execute "select setseed(0.5)"
Movie.where(...).order('random()').page(params[:page]).per_page(15)
Per quanto riguarda Array#shuffle non prendendo un seme, utilizza Kernel.rand quindi puoi eseguire il seeding usando Kernel.srand