WP_Query with offset and ‘orderby’ => ‘rand’, offset not working

You need to get the post ids from the original main query and exclude them. Then you should remove your offset from your custom query. That should do the trick. Random ordering basically ignores the offset parameter, so you need to explicitely remove the posts from the query to exclude them

You can use wp_list_pluck() to get an array of post ids from the main query object (using $wp_query->posts)

$posts_ids = wp_list_pluck( $wp_query->posts, 'ID' );

You then need to pass this to your query arguments as the post__not_in parameter

'post__not_in' => $posts_ids,

error code: 523