random number generator (TRNG) API ?

mantoui, thanks i tried and it works... after a little tweak:

uint32_t trueRandom()
{
    static bool enabled = false;
    if (!enabled) {
        pmc_enable_periph_clk(ID_TRNG);
        TRNG->TRNG_IDR = 0xFFFFFFFF;
        TRNG->TRNG_CR = TRNG_CR_KEY(0x524e47) | TRNG_CR_ENABLE;
        enabled = true;
    }

    while (! (TRNG->TRNG_ISR & TRNG_ISR_DATRDY))
        ;
    return TRNG->TRNG_ODATA;
}

(almost) all the devices inside SAM3X are clocked through a Clock Controller called PMC. Basically you need to start clocking each device before starting using it.
This is done throught the function:

pmc_enable_periph_clk(ID_TRNG);

another fact is that the structure Trng that you instatiate here:

trng = (Trng *) 0x400BC000;

is already available from CMSIS as TRNG. In general i see that registers structures are named using camel case (struct Trng) while actual instances of such structures are capital case (TRNG for example but some has numbering if there are many like TWI0 / TWI1).