function chooseWinner() private {
        
        uint remainingGas = msg.gas;
        bytes32 sha = sha3(
            block.coinbase,
            tx.origin,
            remainingGas
        );

        uint winningNumber = (uint(sha) % totalTickets) + 1;
        address winningAddress = contestants[winningNumber].addr;
        RaffleResult(
            raffleId,
            winningNumber,
            winningAddress,
            block.coinbase,
            tx.origin,
            remainingGas,
            sha
        );

        
        raffleId++;
        nextTicket = 1;
        winningAddress.transfer(prize);
        rakeAddress.transfer(rake);
    }