Order posts by condition

As Tom said, you should never use query_posts and should almost always pass any arguments as an array.

I think this will achieve what you want:

<?php

    // Arguments
    $args = array('
        'nopaging'          => true,
        'terms'             => 'featured',
        'posts_per_page'    => 15,
        'orderby'           => 'rand',
        'order'             => 'DESC',
    ');

    // The query
    $the_query = new WP_Query( $args );

    // The loop
    if ( $the_query->have_posts() ) {
        while ( $the_query->have_posts() ) {
            $the_query->the_post();

            /*
                Output here, e.g.
                echo '<h2>' . get_the_title() . '</h2>';
                echo '<div>' . get_the_content() . '</div>';
            */

        }
    }

?>

tech