fai diversi passaggi inutili.
codice:
..... omissis

     $query= mysql_query("SELECT Puntatore 
                          FROM prodotti 
                          WHERE Novita='$si' 
                          ORDER BY RAND() 
                          LIMIT $numeroprodotti",$db) 
                          or die(Mysql_error());

        while($riga = mysql_fetch_array($query, MYSQL_ASSOC)) {

           $prodottocasuale[] = $riga["Puntatore"];
           }

        mysql_free_result($query);

       // --------------- Fine Query Casuale --------------- 
       return $prodottocasuale;
   }

$prodottocasuale = crearray(8);

echo "<pre>";
print_r($prodottocasuale);
Potresti anche dichiarare globale $prodottocasuale, ma cosi' e' piu' pulito.