Pas une personne postgres mais ... j'essaierais
Movie.connection.execute "select setseed(0.5)"
Movie.where(...).order('random()').page(params[:page]).per_page(15)
En ce qui concerne Array#shuffle ne prenant pas de graine, il utilise Kernel.rand afin que vous puissiez l'amorcer en utilisant Kernel.srand