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