Основая сложность в
должны рандомно появляться среди тех что выводятся по порядку
Есть подозрение, что никак.
Объединить два массива постов (с высоким по порядку и низким случайным порядком) можно где-то так:
$args1 = array(
// тут параметры первого массива
'post__in' => $ids,
);
$args2 = array(
// тут параметры второго массива с низким рейтингом
'orderby' => 'rand',
'post__in' => $ids,
);
$args1 = get_posts( $args1 );
$args2 = get_posts( $args2 );
$merged_ids = array_merge( $args1, $args2 );
$args_final = array(
// тут параметры общего массива
'post__in' => $merged_ids,
'orderby' => 'post__in',
);
$query = new WP_Query( args_final );
Но случайно подкидывать в массив первых посты из второго - весьма нетривиальная задача, либо я еще не проснулся.