Add this code snippet to your functions.php or snippet plugin.
this will create a window to your dashboard. You will be able to randomize your post’s publish dates. within the last 7 days.
in default it is set to select the last 50 posts but you can change that number as you wish.

// Function to scramble publish dates within a maximum of 7 days
function randomize_date_times($posts) {
$scrambled_posts = array();
$current_time = current_time('timestamp');
foreach ($posts as $post) {
$publish_time = strtotime($post->post_date);
$time_diff = $current_time - $publish_time;
if ($time_diff > 0) {
// Set a maximum range of 7 days (604800 seconds)
$max_range = 604800;
$random_offset = rand(-$max_range, 0);
$scrambled_time = $publish_time + $random_offset;
$post->post_date = date('Y-m-d H:i:s', $scrambled_time);
$scrambled_posts[] = $post;
} else {
$scrambled_posts[] = $post;
}
}
return $scrambled_posts;
}
// Function to scramble all posts
function scramble_all_posts() {
$args = array(
'posts_per_page' => 50, // change how many post you want to select
'post_type' => 'post',
'orderby' => 'date',
'order' => 'DESC',
);
$all_posts = get_posts($args);
$scrambled_posts = randomize_date_times($all_posts);
foreach ($scrambled_posts as $scrambled_post) {
wp_update_post($scrambled_post);
}
}
// Callback function for the metabox
function randomize_date_times_callback() {
echo '<div id="scramble-button-wrapper" class="wrap">
<h2>Randomize Date Times</h2>
<p>Click the button below to randomize the publish hours of posts within a maximum of 7 days.</p>
<form method="post" action="">
<input type="hidden" name="randomize_action" value="randomize_posts">
<button type="submit" class="button button-primary">Randomize Date Times</button>
</form>
</div>';
}
// Add metabox to the dashboard
function add_randomize_date_times_metabox() {
add_meta_box(
'randomize_date_times',
'Randomize Date Times',
'randomize_date_times_callback',
'dashboard',
'side',
'default'
);
}
add_action('wp_dashboard_setup', 'add_randomize_date_times_metabox');
// Handle button click event
function randomize_button_click_handler() {
if (isset($_POST['randomize_action']) && $_POST['randomize_action'] === 'randomize_posts') {
scramble_all_posts();
echo '<div class="notice notice-success is-dismissible">
<p>Post publish hours have been randomized within a maximum of 7 days.</p>
</div>';
}
}
add_action('admin_init', 'randomize_button_click_handler');