Custom Post Types Archives and daily/monthly joke

OK, following on from my comment above, I would suggest creating a template for your Jokes archive e.g. archive-my_jokes.php (where my_jokes is the name of your CPT). You can likely copy some template content from category.php or a similar existing template file to get started.
To deal with showing the top joke, you’ll need to put your code before any loop in your template.
I’d suggest using wp_get_recent_posts (see here) to call one post from your CPT.
For example:

$args = array(
    'numberposts' => 1,
    'orderby' => 'post_date',
    'order' => 'DESC',
    'post-type' => 'my_jokes', //CPT slug here
    );

$top_jokes = wp_get_recent_posts ($args);
     foreach ($top_jokes as $top_joke) {
        //Echo what you like here
        echo $top_joke['post_title'] . '<br />';
        echo $top_joke['post_content'];
    }

The styling of the above output is up to you to sort out according to your theme/template/styling needs.
N.B. The reason I used a foreach loop even though you only want one post is for flexibility later if you deicde you want more.