private void Test()
    {
        _output.text = string.Empty;

        // Fill weighted list with items and weights:
        _items.Add(ItemsWithWeights.Item1, (float)ItemsWithWeights.Item1);
        _items.Add(ItemsWithWeights.Item2, (float)ItemsWithWeights.Item2);
        _items.Add(ItemsWithWeights.Item3, (float)ItemsWithWeights.Item3);
        _items.Add(ItemsWithWeights.Item4, (float)ItemsWithWeights.Item4);

        //Prepare container for results:
        Dictionary <ItemsWithWeights, int> results = new Dictionary <ItemsWithWeights, int>();

        results.Add(ItemsWithWeights.Item1, 0);
        results.Add(ItemsWithWeights.Item2, 0);
        results.Add(ItemsWithWeights.Item3, 0);
        results.Add(ItemsWithWeights.Item4, 0);

        // Begin test:
        ItemsWithWeights currentResult;

        for (int i = 0; i < _attempts; i++)
        {
            // Get item
            currentResult = _items.GetRandomByWeight();

            // Save result
            results[currentResult]++;
        }

        // Log results:
        string message = "Weighted list test. " + _attempts + " attempts: ";

        Debug.Log(message);
        _output.text += message + System.Environment.NewLine;

        foreach (var key in results.Keys)
        {
            message       = "Item " + key.ToString() + " with weight " + ((float)key) + " occurs " + results[key] + " times";
            _output.text += message + System.Environment.NewLine;
            Debug.Log(message);
        }
    }