```python
def strange_sort_list(lst):
    '''
    Given list of integers, return list in strange order.
    Strange sorting, is when you start with the minimum value,
    then maximum of the remaining integers, then minimum and so on.

    Examples:
    strange_sort_list([1, 2, 3, 4]) == [1, 4, 2, 3]
    strange_sort_list([5, 5, 5, 5]) == [5, 5, 5, 5]
    strange_sort_list([]) == []
    '''
    if not lst:
        return []
    
    result = []
    remaining = lst[:]
    take_min = True
    
    while remaining:
        if take_min:
            val = min(remaining)
        else:
            val = max(remaining)
        result.append(val)
        remaining.remove(val)
        take_min = not take_min
    
    return result
```