Display a list of random terms from custom taxonomy with shortcode

Try this code:

function these_rand_tax1()
{
    $max = 8; //number of categories to display
    $taxonomy = 'baumaschinen_cat';
    $terms = get_terms('taxonomy=' . $taxonomy . '&orderby=name&order=ASC&hide_empty=0');
    $terms = (array)$terms;

    // Random order
    shuffle($terms);


    // Get first $max items
    $terms = array_slice($terms, 0, $max);


    // Sort by name
    usort($terms, function ($a, $b)
    {
        return strcasecmp($a->name, $b->name);
    });


    // Echo random terms sorted alphabetically
    if ($terms)
    {
        foreach ($terms as $term)
        {
            echo '<p><a href="' . get_term_link($term['slug'], $taxonomy) . '" title="' .  sprintf(__(" View all posts in %s"), $term['name']) . '" ' . '>' . $term['name'] . '</a></p> ';
        }
    }
}