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.