Randomly pick one testimonial post

Assuming
– you saved the post in the “quote” type
– you actually set and save a “who” meta for those post
– you forgot to paste the close section of the loop,
as s_ha_dum stated, your code should work.

Like this

<div id="introBottom" class="group">
      <?php
      $quote_args = array(
                'post_type' => 'post',
                'category' => 'quote',
                'orderby' => 'rand',
                'posts_per_page' => 1
            );

            $quote  = new WP_Query($quote_args);

            if($quote->have_posts()):
                while($quote->have_posts()):
                    $quote->the_post();
                                ?>
                                <p id="testimonial">
                                <?php echo the_content(); ?>
                                <span><?php echo get_post_meta($post->ID, 'who', true); ?></span>
                                 </p>
<?php
endwhile; 
endif;
?>
</div>

posts_per_page replace showposts