<?php

$items = array(

	"Item 1" => 0.5, // porcentagens
	"Item 2" => 1,
	"Item 3" => 4,
	"Item 4" => 4.5,
	"Item 5" => 5,
	"Item 6" => 15,
	"Item 7" => 15,
	"Item 8" => 15,
	"Item 9" => 20,
	"Item 10" => 20

);

$valor = 1000; // valor do peso máximo e total dos itens
$inicio = 1;

$array_elementos = array(); // array para sorteio

// cria o array para sorteio
foreach($items as $nome => $porcentagem){

	$val =  ($valor * $porcentagem) / 100;
	$valorFinal = $val + $inicio - 1;
	$array_elementos[$nome] = $inicio."-".$valorFinal;
	$inicio = $valorFinal + 1;
	
}

// numero randômico "sorteio"
// de 1 até o valor máximo do item mais "pesado"
$num_rand = rand(1, $valor);

$elemento_sorteado = "";

// procura o elemento sorteado
foreach($array_elementos as $nome => $peso){
	$valores = explode("-", $peso);
	if($num_rand >= $valores[0] && $num_rand <= $valores[1]){
		$elemento_sorteado = $nome;
		break;
	}
}

echo $elemento_sorteado;